2 回答

TA貢獻1831條經驗 獲得超9個贊
這條線
String[] data = {String.valueOf( IList )};
String.valueOf( IList )將返回一個字符串,其值為[CB, CC]. 這就是您在 NumberPicker UI 上看到它的原因。
解決方案:將字符串數組列表轉換為字符串數組。
IList.add(snapshot.getKey());
// Convert string arraylist to string array.
String[] data = new String[list.size()];
data = list.toArray(data);
// Set minValue is 1 instead of data.length
numberPicker.setMinValue(1);
numberPicker.setMaxValue(data.length);
numberPicker.setDisplayedValues(data);
numberPicker.setValue(data.length);
numberPicker.setWrapSelectorWheel(false);
更新:我想這就是你的意思
reference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
IList.clear();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
IList.add(snapshot.getKey());
}
// Convert string arraylist to string array.
String[] data = new String[IList.size()];
data = IList.toArray(data);
numberPicker.setMinValue(0);
numberPicker.setMaxValue(data.length - 1);
numberPicker.setDisplayedValues(data);
numberPicker.setValue(0);
numberPicker.setWrapSelectorWheel(false);
}
}

TA貢獻1842條經驗 獲得超13個贊
這是因為以下代碼:
String[] data = {String.valueOf( IList )};
其中String.valueOf返回對象的字符串表示形式IList
。
您需要使用類似toArray的東西。
添加回答
舉報