我有一个Dialog
内置3 的机器人numberpickers
.更改第3个选择器会触发前2个显示值的更改pickers
.但是我注意到当我更改显示的值时,然后调用
setWrapSelectorWheel(false)
它仍然以可视化方式显示新值(我可以看到第一个值之上的最后一个值).
如果我触摸拾取器,它会突然卡入非包裹选择轮.奇怪的是我打电话
getWrapSelectoWheel()
设置显示的值后,它返回false ...就像我设置它一样.但在视觉上这是错误的.
有什么想法发生了什么?
非常感谢!
我找到了一个解决方案,丹尼尔走在正确的轨道上,但是initializeSelectorWheelIndices
一旦你已经设定了你的价值,这似乎是一件坏事.正因为如此,你需要调用setMinValue
和setMaxValue
之前设置的你的价值观.但是,如果您的选择器上已经有一个数组,如果您setMaxValue
使用比当前数组更高的值调用,它将给您一个ArrayIndexOutOfBounds
例外.
解决方案是清除旧的显示值,设置最大值,然后你可以调用setWrapSelectorWheel
和setDisplayValues
:
public void updatePickerValues(String[] newValues){ picker.setDisplayedValues(null); picker.setMinValue(0); picker.setMaxValue(newValues.length -1); picker.setWrapSelectorWheel(false); picker.setDisplayedValues(newValues); }