在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(改成您想要的數值);
沒有留言:
張貼留言