Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tro0P
0 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 24
#1

Обработчик динамически созданных кнопок - Android

24.11.2015, 18:25. Просмотров 258. Ответов 5
Метки нет (Все метки)

есть цикл, в котором создаются кнопки
Java
1
2
3
4
5
   for (k=1;k<20;k++){
            Button newBtn=new Button(this);
            newBtn.setText("новая кнопка");
            lMain.addView(newBtn, 200, 500);
            newBtn.setId(10+k);}
как сделать обработчик для этих кнопок? например, менять Text на k?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 18:25     Обработчик динамически созданных кнопок
Посмотрите здесь:

Обработчик кнопки Android
Обработчик нажатий Android
Обработчик кнопки Android
Android Сервер-обработчик
Сохранение состояния деятельности динамически созданных объектов Android
Android Фильтрация ввода у динамически созданных edittext
Android Обработчик OnClickListener
Android Не могу создать обработчик двух кнопок
Android Один обработчик для динамических кнопок
Android Как получить значение из программно созданных Edit-ов?
Обработка нажатий кнопок созданных программно в заданном месте разметки Android
Получить текст из массива динамически созданных элементов на форме Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
24.11.2015, 19:17     Обработчик динамически созданных кнопок #2
примерно как-то так. ваша строка 3, и после нее.
Java
1
2
3
4
5
6
7
newBtn.setText("новая кнопка");
newBtn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        newBtn.setText("" + k);
    }
});
Tro0P
0 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 24
24.11.2015, 20:16  [ТС]     Обработчик динамически созданных кнопок #3
не помогло, без 4й строки кнопки не создаются, что бы заработало нужно newBtn объявить для всего класса.
Сделал это и при нажатии на кнопки реакции никакой((
почему-то кажется, что всё же надо как-то химичить с Id, только не разобрался как
Паблито
резкий
1959 / 1694 / 525
Регистрация: 12.05.2014
Сообщений: 6,044
Завершенные тесты: 1
24.11.2015, 20:32     Обработчик динамически созданных кнопок #4
сделать ОДИН обработчик и вешать его на кнопки в цикле
и я не уверен что вот так раздавать id - хорошая практика
если API17 и выше то можно использовать View.generateViewID() а потом уже назначать его на вьюшку

если API более старый то можно использовать setTag
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
24.11.2015, 21:24     Обработчик динамически созданных кнопок #5
Tro0P, Вы меня не поняли.
все Ваши стрчки остаются, просто между 3 и 4 вставьте мой код.
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
24.11.2015, 23:08     Обработчик динамически созданных кнопок #6
Цитата Сообщение от bastrakov Посмотреть сообщение
Java
1
2
3
public void onClick(View view) {
    newBtn.setText("" + k);
}
этот код будет менять текст только на последней созданной кнопке. Нужно как-то так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Там же где сейчас код создания кнопок
View.OnClickListener listener = new View.OnClickListener() {
    @Override
    public void onClick(View view) {
       ((Button) view).setText("some text");      
    }
};
 
for(int i = 0; i < 20; i++){
    Button button = new Button(this);
    button.setText("новая кнопка");
    button.setOnClickListener(listener);
    lMain.addView(button, 200, 500);
}
Yandex
Объявления
24.11.2015, 23:08     Обработчик динамически созданных кнопок
Ответ Создать тему
Опции темы

Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru