Как сделать одну переменную на несколько кнопок?

Доброго дня!

Имеем 22 кнопки в 1 layout1. При нажатии любой из этих кнопок будет будет задействован один и тот же Activity2 и привязанный к нему layout2. Но в зависимости от нажатой кнопки в layout1 будет меняться содержимое текста в layout2. А теперь уважаемые знатоки вопрос. Как не прописывать действие каждой кнопки, а просто заставить OnClickListener слушать любое нажатие и и выполнять определенное действие? Просто если все идет шаблонно, я сомневаюсь что девелопер будет кодить каждую кнопку, у которой различие будет только в id и тексте, который будет отображаться в layout2.

Спасибо!
  • Вопрос задан
  • 334 просмотра
Решения вопроса 1
gadfi
@gadfi
https://gamega.org
for(int i=0; i < layout.getChildCount(); i++){
    View v = layout.getChildAt(i);
    if (v instanceof Button) {
        Button button = (Button) v;
        button.setOnClickListener(this);
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rou1997
@Rou1997
я сомневаюсь что девелопер будет кодить каждую кнопку, у которой различие будет только в id и тексте

Но в Layout же ее "накодили", и в чем проблема 22 раза скопировать "findViewById" и что там еще? Если его это шокирует, то писал бы плагин для IDE для автоматической генерации этого "findViewById", давным-давно пора, во всех нормальных GUI это автоматизировано, только в Android все по-дурацки, да разработчики из Microsoft кто создавал еще VB 6.0, в шоке были бы, узнав, что спустя двадцать лет будет платформа, где этого по-прежнему нет, и она одна из популярнейших.
А можно создать массив или список из ID, а далее цикл, меньше будет "копипасты" и больше гибкость.
Хотя, наверное, стоило изначально применить программное создание кнопок, в цикле, и каждой задать один и тот же OnClickListener.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы