将数据加载到 android 微调器并在选择项目时崩溃

Loading the data to android spinner and it crashes when selecting an item

我有这个方法,它 returns 三个值,如下面的屏幕截图所示,

List<String> resultSizes = getFilteredSizes(crustSelectedItem);

然后我将这 3 个数据加载到 android 微调器,然后我使用这段代码来获取微调器值 selected,

String StrSizeSPPosition = String.valueOf(sizeSP.getSelectedItemPosition()); 

它说 0

然后我有一个字符串列表 sizePrice, 它 returns 下面显示的值,

我正在使用这段代码来获取 selected 项目的尊重价值,

StrPriceSize = sizePrice.get(SizeSPPosition); // crashes here
PriceSize = Double.parseDouble(StrPriceSize);
System.out.println("PriceSize = " + PriceSize);

我的问题是,当我 select 平移大时,它应该给出 1560 的输出,因为我正在获取索引位置,但它给出了 450。当我 select 其他值时它崩溃并给出异常。

这是例外,

这是logcat输出

完整代码

                        List<String> resultSizes = getFilteredSizes(crustSelectedItem);

                        ArrayAdapter<String> dataAdapterDes = new ArrayAdapter<String>(
                                Activity.this,
                                android.R.layout.simple_spinner_item,
                                resultSizes);
                        dataAdapterDes
                                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
                        sizeSP.setAdapter(dataAdapterDes);

                        sizeSP.setOnItemSelectedListener(new MyOnItemSelectedListener(
                                Activity.this) {

                            public void onNothingSelected(AdapterView<?> arg0) {
                            }

                            @Override
                            public void onItemSelected(AdapterView<?> parent,
                                    View view, int position, long id) {

                                String sizeSelectedItem = sizeSP
                                        .getSelectedItem().toString();

                                String StrSizeSPPosition = String
                                        .valueOf(sizeSP
                                                .getSelectedItemPosition());

                                System.out.println("sizeSelectedItem = "
                                        + sizeSelectedItem);
                                System.out.println("StrSizeSPPosition = "
                                        + StrSizeSPPosition);

                                SizeSPPosition = Integer
                                        .parseInt(StrSizeSPPosition);

                                String StrPriceSize = sizePrice
                                        .get(SizeSPPosition);
                                PriceSize = Double.parseDouble(StrPriceSize);

(我有另一个选项,当我 select 时它只有 1 个值,它可以正常工作而不会崩溃,我想我只有在我有数据 mora 时才会遇到这个问题 1) 我希望我的问题足够清楚,可以理解。如果您需要更多详细信息,请询问以明确问题。如果您能帮助解决这个问题,我们将不胜感激。

代替这行代码:-

String StrPriceSize = sizePrice.get(SizeSPPosition);
PriceSize = Double.parseDouble(StrPriceSize);

输入此代码:-

String StrPriceSize = resultSizes.get(SizeSPPosition);
 PriceSize = Double.parseDouble(StrPriceSize);

或者试试这个:-

尝试打印 Log.d("sizePriceList", sizePrice+"");在代码中检查从微调器中选择项目时获得的元素数量。您的 logcat 显示 indexoutofbound 的异常,这意味着您只能获得 sizePrice

中的一项