【问题标题】:Android NumberPicker how to find amount changed?Android NumberPicker 如何查找更改的金额?
【发布时间】:2012-06-22 17:30:36
【问题描述】:

我想显示从用户开始滚动到最终值时数字选择器值的变化量。我找到了 OnValueChangeListener 但问题是它会在每个滚动过去的数字上被调用,而我想要值的总变化。我查看了 OnScrollListener,但这似乎也不是我想要的。

当用户第一次开始滚动时会触发一个事件吗?还有一个数字选择器停止旋转的事件?

看起来应该很容易实现,但我很挣扎。例如 NumberPicker 从 20 的初始值开始,用户滚动到 11,因此更改的数量为 9。

【问题讨论】:

    标签: android android-widget android-ui


    【解决方案1】:

    答案真的很简单......只需存储初始值和最终值并取两者之间的差即可。

    1. 在膨胀/实例化 NumberPicker 之前,请注意其初始起始值。例如,创建一个私有实例变量private int mInitialValue。然后当你给你的NumberPicker 初始值为20时,

      mInitialValue = 20;
      
    2. 当用户退出活动时(或当您确定已设置“最终”值时),存储其值(即mFinalValue)。然后用mFinalValue - mInitialValue取差价。

    【讨论】:

    • 谢谢,在这种情况下会起作用,我应该更具体地回答我的问题。 NumberPicker 将始终可见,没有 OK 按钮或任何可单击以设置最终值的按钮。 ScrollListener 非常接近我想要的,我可以在 state == 1 时设置 initialValue 但不幸的是 state = 0 在您释放触摸时发生,因此数字可以通过动量轻弹而使最终值略显不足。
    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 2011-11-30
    • 2016-03-06
    • 2012-11-25
    • 2014-10-28
    • 2013-09-19
    • 2022-06-13
    • 2017-04-20
    相关资源
    最近更新 更多