当前位置:  开发笔记 > 编程语言 > 正文

Android NumberPicker在显示值更改时包装值

如何解决《AndroidNumberPicker在显示值更改时包装值》经验,为你挑选了1个好方法。

我有一个Dialog内置3 的机器人numberpickers.更改第3个选择器会触发前2个显示值的更改pickers.但是我注意到当我更改显示的值时,然后调用

setWrapSelectorWheel(false)

它仍然以可视化方式显示新值(我可以看到第一个值之上的最后一个值).

如果我触摸拾取器,它会突然卡入非包裹选择轮.奇怪的是我打电话

getWrapSelectoWheel()

设置显示的值后,它返回false ...就像我设置它一样.但在视觉上这是错误的.

有什么想法发生了什么?

非常感谢!



1> Gabriel..:

我找到了一个解决方案,丹尼尔走在正确的轨道上,但是initializeSelectorWheelIndices一旦你已经设定了你的价值,这似乎是一件坏事.正因为如此,你需要调用setMinValuesetMaxValue之前设置的你的价值观.但是,如果您的选择器上已经有一个数组,如果您setMaxValue使用比当前数组更高的值调用,它将给您一个ArrayIndexOutOfBounds例外.

解决方案是清除旧的显示值,设置最大值,然后你可以调用setWrapSelectorWheelsetDisplayValues:

public void updatePickerValues(String[] newValues){
  picker.setDisplayedValues(null);
  picker.setMinValue(0);
  picker.setMaxValue(newValues.length -1);
  picker.setWrapSelectorWheel(false);
  picker.setDisplayedValues(newValues);
}

推荐阅读
小色米虫_524
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有