我正在努力将数字选择器集成到我的应用程序中。该 Activity 显示一个项目列表,每个项目都有一个数字选择器。用户可以使用数字选择器增加或减少数量。当他们这样做时,我想更新一个显示价格的 TextView。
我在尝试实现此目标时遇到了困难。我做了一个简单的项目,并尝试在用户单击小部件时尝试显示 toast 消息,但无济于事。
我的猜测是数字小部件没有像按钮一样对待,因此点击监听器不起作用?对于添加监听器的任何建议,我将不胜感激。
下面是我的代码:
NumberPicker np;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
np = (NumberPicker)findViewById(R.id.numberPicker1);
np.setMaxValue(99);
np.setMinValue(0);
np.setValue(50);
np.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Number selected", Toast.LENGTH_SHORT).show();
}
});
}
最佳答案
要使用Picker
设置监听器,您的 Activity 必须实现选择器接口(interface)监听器。 (其实你的activity并不是强制实现接口(interface)的,你也可以使用匿名内部方法。随便吧。)
所以在你的 Activity 中:
public class MainActivity extends Activity implements NumberPicker.OnValueChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
NumberPicker np = (NumberPicker)findViewById(R.id.numberPicker1);
np.setMaxValue(99);
np.setMinValue(0);
np.setValue(50);
np.setOnValueChangedListener(this);
}
public void onValueChange(NumberPicker picker, int oldVal, int newVal) {
Toast.makeText(this, "change", Toast.LENGTH_SHORT).show();
}
}
关于android - 将监听器添加到数字选择器小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185317/