【发布时间】:2012-07-03 10:10:18
【问题描述】:
我正在尝试为我的 NumberPicker 使用一组由 (-50 -> 50) 组成的数字,NumberPicker 的 MinValue / MaxValue 设置为 0 / 100,然后 setValue 设置为 50 作为默认起点( 0),知道为什么它正确显示数字,除了-1到-5......当没有选择它们时它们显示很好......当它们被选中时它们显示为-19,-29,-39,-49,-50。
我已经测试了我提供给它的 int 数组,其中的所有值都很好。
这是我用来填充 NumberPicker 的代码中的 sn-p...
String[] currentScoreArray = new String[100];
final NumberPicker currentScore = (NumberPicker) findViewById(R.id.currentScore);
for (int i = 0; i <= 100; i++)
currentScoreArray[i] = Integer.toString(i - 50);
currentScore.setMaxValue(100);
currentScore.setMinValue(0);
currentScore.setWrapSelectorWheel(false);
currentScore.setDisplayedValues(currentScoreArray);
currentScore.setValue(50);
在与 baba 男高音交谈后,我仍然无法解决这个问题。我已经制作了一个 YouTube 视频,并在视频评论的链接中包含了代码和 logcat。
【问题讨论】:
-
请在您处理和显示选择的地方发布代码。
-
你指的是随之而来的 XML 吗?我没有使用任何代码来处理和显示选择,因为 NumberPicker 是一个 android 类(我让 android 代码为我做所有这些)。
-
我对您的代码一无所知。首先,如果您希望范围为 [-50, 50],为什么要将最小值和最大值设置为 0 和 100。其次,为什么不尝试从-50到50运行for循环,而不是每次都处理(i-50)操作。
-
我尝试了你所说的并稍微改变了 for 循环(这是由于我最初使用控件的方式)。但就像我说的那样,这是这里的原始问题......“java.lang.IllegalArgumentException:minValue must be >= 0”是我尝试做 currentScore.setMinValue(-50);
-
你检查 currentScoreArray 了吗?你能正确地看到从 -50 到 50 的所有数字吗?另外,“未选中时它们显示正常”是什么意思?
标签: android