【问题标题】:NumberPicker OnValueChangeListener not called when setValue设置值时未调用 NumberPicker OnValueChangeListener
【发布时间】:2014-09-05 00:22:59
【问题描述】:
我正在编写自动化测试,我想测试 onValuChangeListener 是否被调用并且正在执行预期的操作。
我在 UI 线程上运行。
picker.setValue(myIndex);
但不幸的是,没有调用监听器方法。
该索引是一个有效的索引。
是的,我正在添加侦听器,是的,当我运行/调试应用程序时会调用该方法,以便正确设置。
谢谢。
【问题讨论】:
标签:
android
testing
listener
automated-tests
numberpicker
【解决方案1】:
不幸的是,这对于 NumberPicker 来说是不可能的。如果您查看源代码,您将看到以下内容:
public void setValue(int value) {
setValueInternal(value, false);
}
如您所见, setValueInternal 具有 int value 和 boolean notify 参数。当notify 为真时,该方法调用NumberPicker.OnValueChangeListener 接口并进行任何更改。由于它是假的,它永远不会通知你的听众。您需要自己处理更改。