Spinner getSelectedItem()返回错误的位置

问题描述 投票:-1回答:3

我使用时会出错

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,请帮助我。

java android
3个回答
0
投票
Spinner spinner = (Spinner)findViewById(R.id.spinner);

String text = spinner.getSelectedItem()。toString();

用这个


0
投票

试试这个

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
投票

微调器位置从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) {

        }
    });
© www.soinside.com 2019 - 2024. All rights reserved.