我有一个2-6项的arraylist。这些项通过一些if / else语句添加。 我必须将这个arraylist(listFartoy)转换为数组(arrayFartoy),以便它在微调器中工作。
我使用以下方法:
String[] arrayFartoy = new String[listFartoy.size()];
arrayFartoy = listfartoy.toArray(arrayFartoy);
似乎工作正常。
但是当我把它放在旋转器内时它不会工作。 行arrayFartoy [position]变红。
ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, arrayFartoy);
adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_fartoy.setAdapter(adapterFartoy);
spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
selectedFartoy = arrayFartoy[position];
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
当我使用带有普通数组的旋转器/适配器时,它运行良好,所选项目存储在“selectedFartoy”中。
适用于此:
String[] arrayFartoy = new String[] { "Tarot T960", "Tarot FY680", "Ecilop",
"Sexycopter", "Skywalker" };
答案 0 :(得分:0)
我认为您不希望将ArrayList转换为String数组。因为你可以直接将arrayList传递给ArrayAdapter。像:
ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, listfartoy);
adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_fartoy.setAdapter(adapterFartoy);
spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int position, long id) {
selectedFartoy = listfartoy.get(position);
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});