我使用时会出错
String a=(String)spinner.getSelectedItem();
日志是:
java.lang.IndexOutOfBoundsException: Invalid index 220, size is 7
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
但是我的微调器列表大小是7,请帮助我。
Spinner spinner = (Spinner)findViewById(R.id.spinner);
String text = spinner.getSelectedItem()。toString();
用这个
试试这个
spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
// your code here
String selectedValue=arralist.get(position);
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// your code here
}
});
微调器位置从0开始,微调器采用默认选择位置。
你需要停止微调器选择默认选择位置只需使用布尔函数
刚刚发起private boolean isSpinnerInitial = true;
里面的创建方法
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
if (isSpinnerInitial) {
isSpinnerInitial = false;
} else {
String position = String.valueOf(spinner.getSelectedItemPosition());
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});