我想在android中创建一个有0到255列表的微调器。我想知道我是怎么做的?
我目前有这个......
public void addItemsOnSpinner() {
spinner = (Spinner) findViewById(R.id.spinner);
List<String> list = new ArrayList<String>();
list.add("list 1");
list.add("list 2");
list.add("list 3");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
}
我对java没有多少经验,所以真的只想让微调器从0开始,然后逐渐增加到255.
干杯
答案 0 :(得分:5)
更改您的代码:
public void addItemsOnSpinner() {
spinner = (Spinner) findViewById(R.id.spinner);
List<String> list = new ArrayList<String>();
for (int i=0; i<=255; i++){
list.add("list " + i);
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(dataAdapter);
}
答案 1 :(得分:3)
您可以使用自定义适配器返回最多255位的值:
public class CountAdapter extends ArrayAdapter<String> {
public CountAdapter(Context context, int resource) {
super(context, resource);
}
@Override
public int getCount() {
return 255;
}
@Override
public String getItem(int position) {
return String.valueOf(position);
}
}
这样您就不必创建255个项目列表。例如,255显然可以在构造函数中进行参数化。或者在setter中(在这种情况下不要忘记调用notifyDataSetChanged()
)
答案 2 :(得分:1)
只需创建一个重复255次的for循环,每次都将当前索引添加到列表中。尝试这样的事情:
final List<String> list = new ArrayList<String>();
for(int i = 0; i < 255; i++) {
String item = String.valueOf(i);
list.add(item);
}
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, list);
...