Android Spinner Data setSelection Элемент, не соответствующий позиции - PullRequest
0 голосов
/ 29 мая 2019

Я использую компонент 3 Spinner и каждый спиннер setOnItemSelectedListener для вызова бэкэнда и установки значения в адаптерах массива, и в то же время я получаю значения на основе входных данных моего сервера.

Сначала мы вызвали webservice и установили значения в адаптере счетчика. я снова вызывал 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 и в третий раз получаю правильные значения.

...