有沒有一種方法可以使用Android NumberPicker小部件來選擇字符串而不是整數?在字符串中使用NumberPicker小部件
回答
NumberPicker picker = new NumberPicker(this);
picker.setMinValue(0);
picker.setMaxValue(2);
picker.setDisplayedValues(new String[] { "Belgium", "France", "United Kingdom" });
String value = String.valueOf(picker.getValue());
你可能意味着別的東西,但它不是很清楚你的意思。
更新:
您可以僞造它通過設置自己的格式化程序:
CountryFormatter implements Formatter {
public String toString(int value) {
switch(value) {
case 0:
return "England";
case 1:
return "France";
}
return "Unknown";
}
}
picker.setFormatter(new CountryFormatter());
的getValue()仍然會返回一個int,所以你可能想國家的名稱映射到它們的ID。
新增: NumberPicker的實施有:
public void setRange(int start, int end, String[] displayedValues)
這似乎做你想要什麼,然後上面的格式..一個更好的工作雖然沒有在文檔中提到所以大概ISN」公共API的t部
我想用它來選擇例如一個國家。就像Spinner Widget一樣,但是不需要在底部打開一個額外的框架來選擇一個值。 – timoschloesser
已更新答案,但是可能有更好的方式列出國家,而不是試圖破解NumberPicker來做這類事情。 – FunkTheMonk
@FunkTheMonk我無法在文檔中找到這個'setRange()'方法!任何想法爲什麼? – iTurki
NumberPicker numberPicker = new NumberPicker(this);
String[] arrayString= new String[]{"hakuna","matata","timon","and","pumba"};
numberPicker.setMinValue(0);
numberPicker.setMaxValue(arrayString.length-1);
numberPicker.setFormatter(new NumberPicker.Formatter() {
@Override
public String format(int value) {
// TODO Auto-generated method stub
return arrayString[value];
}
});
希望幫助!
嘗試此解決方案,可以幫助你
NumberPicker pickers = new NumberPicker(this);
String[] arrayPicker= new String[]{"abc","def","ghi","jkl","mno"};
//set min value zero
pickers.setMinValue(0);
//set max value from length array string reduced 1
pickers.setMaxValue(arrayPicker.length - 1);
//implement array string to number picker
pickers.setDisplayedValues(arrayPicker);
//disable soft keyboard
pickers.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
//set wrap true or false, try it you will know the difference
pickers.setWrapSelectorWheel(false);
//create button to test selected text string
btnPicker.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//get position (int) from number picker
int pos = pickers.getValue();
//get string from number picker and position
String selecPicker = arrayPicker[pos];
//test toast to get selected text string
Toast.makeText(context, selecPicker , Toast.LENGTH_SHORT).show();
}
});
- 1. 使NumberPicker字符串值可重複
- 2. 在NumberPicker中用字符串在Android中選擇的位置
- 3. 如何獲取NumberPicker小部件的值?
- 4. 帶有字符串的Android NumberPicker
- 5. 從NumberPicker值轉換爲字符串
- 6. SQL Server在計算中使用字符串的小數部分
- 7. 通過字符串獲取小部件
- 8. 如何使用RegExp刪除大字符串中的一小部分字符串
- 9. 在tkinter文本小部件中左右調整字符串
- 10. 在活動小部件中顯示java類的字符串
- 11. 使用部分字符串
- 12. PHP - 獲取字符串中的一小部分字符串,基於條件
- 13. 獲取標籤小部件中字符串的長度
- 14. 使用STUFF替換SQL中的字符串,並使用小於要替換的字符串的字符串
- 15. 使字符串變小c#
- 16. 使字符串小寫XSLT
- 17. 在Java中使用多個分隔符部分Tokenizing字符串
- 18. 在C#中提取字符串中的小數部分
- 19. 如何在小部件已經包含在其他小部件中時使用小部件替換小部件?
- 20. 如何在文件路徑中使用字符串或字符串的子串
- 21. cin.getline()不使用字符串大小
- 22. 在C++中將字符串劃分爲更小的字符串
- 23. 使字符串小寫,放在哪裏
- 24. 如何在字符串文字中使用字符串插值?
- 25. 使用str_replace替換外部文件中的字符串值
- 26. 如何在Python中的字符串中使用子字符串?
- 27. 在Eclipse/pydev中的窗口小部件中顯示文檔字符串?
- 28. 字符串與年月日全部小寫在java中
- 29. 在字符串中使用@符號
- 30. SQLPlus在字符串中使用符號@ @
對我來說,關鍵在於你必須設置顯示值和最小值和最大值。謝謝。 –
這比上面選擇的答案好得多。 –
但是,當我點擊文本時,軟鍵盤彈出,我可以編輯文本。 – Confuse