Android微调器数据setSelection项目与位置不匹配

时间:2019-05-29 15:19:40

标签: android android-spinner

我正在使用3 Spinner组件和每个spinner setOnItemSelectedListener来调用后端并在数组适配器中设置值,同时我已经根据服务器输入检索了值。

首先,我们调用了webservice,并在Spinner适配器中设置了值。我再次调用webservice来获取要设置到微调器适配器中的值,但是在获取位置时,前两次我的搜索按钮上的标签始终为-1值。我正在微调器适配器位置中第三次获得正确的值设置。

ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_spinner_item,stateList);
                dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_state.setAdapter(dataAdapter);
 spinner_state.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                    @Override
                    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                        // calling district adapter and default loading the value for as per state adapter
                        getSalesCustomerDistrictList(parent.getItemAtPosition(position).toString());
                    }
                    @Override
                    public void onNothingSelected(AdapterView<?> arg0) {

                    }
                });

要根据位置获取适配器值。

ArrayAdapter districtAdapter = (ArrayAdapter) spinner_district.getAdapter();
                int districtPosition = districtAdapter.getPosition(salesCustomerPinCodeSearch.getData().get(0).getDstrtName());
spinner_district.setSelection(districtPosition);

前两次我获得的位置值是-1,第三次获得正确的值。

0 个答案:

没有答案