android - 将监听器添加到数字选择器小部件

标签 android onclicklistener numberpicker

我正在努力将数字选择器集成到我的应用程序中。该 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/

相关文章:

java - 来自字符串数组列表的随机字符串

android - 在不同的 Activity 中添加新内容后刷新 SQLite 列表

java - onClickListener() 不适用于 FloatingActionButton 和工具栏图标

Android NumberPicker OnValueChangeListener

android - Facebook 未找到额外权限请求按钮

android - Mosby MVP - 如何在 onDestroyView() 之后重新创建 Fragment 的状态?

java - OnClickListener 不隐式工作。为什么?

javascript - 使用 JS ES6 播放(点击)带有自定义叠加层的 wistia 视频

Android NumberPicker 小部件,如何通过软键盘获取输入的值?

Android numberpicker,永远不会从 OnValueChangedListener 断点传递