有没有办法使用Android NumberPicker小部件来选择字符串而不是整数?
发布于 2012-11-28 02:27:17
NumberPicker picker = new NumberPicker(this);
picker.setMinValue(0);
picker.setMaxValue(2);
picker.setDisplayedValues( new String[] { "Belgium", "France", "United Kingdom" } );
发布于 2014-10-19 21:12:14
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];
}
});
希望这能有所帮助!
发布于 2011-11-22 21:00:48
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()仍将返回一个整数,因此您可能希望将国家的名称映射到它们的ids。
添加: NumberPicker的实现具有:
public void setRange(int start, int end, String[] displayedValues)
它似乎比上面的格式化程序更能满足您的需要。尽管文档中没有提到它,因此它可能不是公共api的一部分
https://stackoverflow.com/questions/8227073
复制相似问题