NumberPicker,OnValueChangedListener,区分来自用户的变化和来自编程的变化?
NumberPicker, OnValueChangedListener, distinguish change from user and from programmatic change?
当应用程序本身以编程方式更改值时,似乎会调用 OnValueChangedListener
。我能否让它仅在用户旋转拨盘或知道事件是来自应用程序(代码)还是来自用户时引发?
您可以有一个字段保存选择器的当前值。如果您想从代码中设置选择器的当前编号,请在更新数字选择器之前更改该字段。在选择器侦听器中,只需忽略新数字已经等于该字段的事件。否则处理更改并更新字段。
当应用程序本身以编程方式更改值时,似乎会调用 OnValueChangedListener
。我能否让它仅在用户旋转拨盘或知道事件是来自应用程序(代码)还是来自用户时引发?
您可以有一个字段保存选择器的当前值。如果您想从代码中设置选择器的当前编号,请在更新数字选择器之前更改该字段。在选择器侦听器中,只需忽略新数字已经等于该字段的事件。否则处理更改并更新字段。