у меня есть ArraList, есть допустим 2 элемента.
Как программно отследить какой из radiobutton нажмет пользователь?
Знаю , что если использовать case, то нужно указывать id элемента в разметке, но я же создал программно,как быть? Как отследить нажатие?
Когда вы создаёте программно RadioButton, вы можете задать ему id. Можно, к примеру, записывать созданные кнопки в
ArrayList<RadioButton> list;
Тогда id кнопке можно задавать как размер списка:
RadioButton radioButton = new RadioButton(this);
// Задаём id
radioButton.setId(list.size());
list.add(radioButton);
radioGroup.addView(radioButton);
В onCreate задаём RadioGroup слушателя:
list = new ArrayList<RadioButton>();
radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
//checkedId - индекс кнопки в ArrayList
RadioButton button = list.get(checkedId);
}
});
Уже в слушателе, зная id, можно обратиться к самой кнопке.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости