Я попытался найти ответ, но трудно найти правильные условия для поиска. Итак, моя проблема в том, что я создаю программно TableRow с двумя прядильщиками с выбором на нем. Когда я выбираю что-то на этом счетчике, он создает еще одну строку ниже с тем же дизайном, но с другими значениями на прядильщиках. Моя проблема в том, что всякий раз, когда я создаю вторую строку, он запускает onItemSelect в цикле. Цикл, я считаю, происходит потому, что событие запускается на новом счетчике, который генерируется. Есть ли способ, чтобы он не работал, когда я его создавал, но только когда я выбираю параметры на нем?Android Spinner creation запускает событие
Не знаю, что вам требуется от кода, но я помещу здесь что-нибудь еще, просто спрошу, что я отправлю как можно скорее.
Я создаю вертушку:
spin1 = new Spinner(this);
spin1.setLayoutParams(new TableRow.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
spin1.setOnItemSelectedListener(this);
По вопросу выбора добавить это:
TableRow tableRowNow = (TableRow) parent.getParent();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, indiceSpinnerArray1);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems = (Spinner) tableRowNow.getChildAt(0);
sItems.setAdapter(adapter);
sItems.setSelection(position);
ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray2);
adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems11 = (Spinner) tableRowNow.getChildAt(1);
sItems11.setAdapter(adapter1);
sItems11.setSelection(1);
sItems11.setEnabled(false);
newRow();
TableLayout tabLayoutTemp1 = (TableLayout) tableRowNow.getParent();
int numRowTemp = tabLayoutTemp1.indexOfChild(tableRowNow);
TableRow secondTabRow = (TableRow) tabLayoutTemp1.getChildAt(numRowTemp + 1);
ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(
this, android.R.layout.simple_spinner_item, spinnerArray3);
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
Spinner sItems2 = (Spinner) secondTabRow.getChildAt(1);
sItems2.setAdapter(adapter2);
А потом он просто продолжает создавать новые строки в бесконечность .. любая помощь?
спасибо.
Вы были правы, я переписал код и обнаружил, что проблема заключается в вызове onItemSelect при каждом создании spinner. Решила его, используя приемы setTag и getTag. Спасибо за вашу помощь. – Morce