Android 筆記 - NumberPicker 數字選擇器(滾動)

在Android裡使用 numberPicker 可產生上下滾動方式,選擇想要的數值或字串。


使用方法:


String[] arrayStr = new String[] { "aa""bb""cc""dd" };
NumberPicker numberPicker = new NumberPicker(ui.context);
numberPicker.setMinValue(0);
numberPicker.setDisplayedValues(arrayStr);
numberPicker.setMaxValue(arrayStr.length - 1);
numberPicker.setValue(1);
view.addView(numberPicker);

這是結果:


遇到的問題:

當有不同長度的陣列要共用同一個numberPicker,會出現類似如下的訊息java.lang.ArrayIndexOutOfBoundsException: length=5; index=19

問題大概會在出現在這兩行

numberPicker.setDisplayedValues(arrayStr);
numberPicker.setMaxValue(arrayStr.length 1);


解決方法:

要先將 setMaxValue 設定成 0 才可以再設定 setDisplayedValues,如下所示:

numberPicker.setValue(0);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(0);
numberPicker.setDisplayedValues(arrayStr);
numberPicker.setMaxValue(arrayStr.length 1);
numberPicker.setValue(改成您想要的數值);




沒有留言:

張貼留言