У меня есть активность, которая имеет много каскадных счетчиков и после выбора первого, второго счетчика инициализирует и заполняет данные и после выбора элемента из второго, третьего счетчика инициализирует и заполняет данные и так далее.Dynamically setSelection of spinner, не запускать OnItemSelectedListener
для каждой блесны я создаю их, как это, и это является итеративным:
public ArrayList<MaterialSpinner> spinnerlist = new ArrayList<>();
public void createView(){
final MaterialSpinner spinner = new MaterialSpinner(context);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){//...after select item next spinner creates with calling createView() iteratively}
loadSpinnerData(); // set adapter and more
spinnerlist.add(spinner);
}
каждые вещи идут правильно, когда выбор является пользователем, но когда я использую setSelection(positionOfItem)
Динамически, к сожалению
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
не звонит. Я не знаю, почему это происходит.
for (int i = 0; i < some_value; i++) {
int positionOfItem = get_proper_position;
spinnerList.get(i).setSelection(positionOfItem); //this not trigger onItemSelect!
}
проблема есть здесь. размер spinner равен 1 в первый раз, но после setselection слушатель не вызывает и второй spinner не создает.
Я также думал, что это из-за трудоемких действий, поэтому постарайтесь использовать run-able и после некоторой задержки, но это не сработало.
Я предполагаю, что вы делаете setSelection перед инициализацией setOnItemSelectedListner. он всегда должен называть setOnItemSelectedListner. Пожалуйста, проверьте этот сценарий и, пожалуйста, поделитесь своим кодом –
@MiralBhalani Я обновил вопрос. первый spiner создается и инициализируется и добавляется в список, но на выбранном не работает – Kenji
вы можете дать некоторую информацию о categoryId, что находится в этом? –