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

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

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

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

24.11.2015, 18:25. Просмотров 385. Ответов 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?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 18:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработчик динамически созданных кнопок (Программирование Android):

Фильтрация ввода у динамически созданных edittext - Программирование Android
Здравствуйте, форумчане!Хотелось бы разобраться,почему после того как я создаю динамически edittext и назначаю ему фильтр ввода,который...

Сохранение состояния деятельности динамически созданных объектов - Программирование Android
Ребят, день добрый ! Задался вопросом, как сохранить состояние деятельности, ДИНАМИЧЕСКИ созданных, View, при смене активности? для...

Получить текст из массива динамически созданных элементов на форме - Программирование Android
Здравствуйте! Я создал массив вьюх, которые заполняю элементами, и затем отображаих на форме. Часть этих элементов я заполнил текстом....

Обработка нажатий кнопок созданных программно в заданном месте разметки - Программирование Android
Здравствуйте, собственно проблема: как сделать кнопки в андроид(не простые через button@id а золотые), кнопки округлой формы, желательно с...

Один обработчик для динамических кнопок - Программирование Android
Кнопки создаются/удаляются, и у них один OnClickListener. Но при нажатии, надо получить текст именно с той кнопки на которую нажали. Как...

Не могу создать обработчик двух кнопок - Программирование Android
Я новенький в среде разработке Eclipse под Андроид. Не могу создать программку, а вернее обработчик двух кнопок. Назначения первой кнопки...

5
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);
    }
});
0
Tro0P
0 / 0 / 0
Регистрация: 14.11.2015
Сообщений: 24
24.11.2015, 20:16  [ТС] #3
не помогло, без 4й строки кнопки не создаются, что бы заработало нужно newBtn объявить для всего класса.
Сделал это и при нажатии на кнопки реакции никакой((
почему-то кажется, что всё же надо как-то химичить с Id, только не разобрался как
0
Pablito
2477 / 1961 / 611
Регистрация: 12.05.2014
Сообщений: 6,866
Завершенные тесты: 1
24.11.2015, 20:32 #4
сделать ОДИН обработчик и вешать его на кнопки в цикле
и я не уверен что вот так раздавать id - хорошая практика
если API17 и выше то можно использовать View.generateViewID() а потом уже назначать его на вьюшку

если API более старый то можно использовать setTag
1
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
24.11.2015, 21:24 #5
Tro0P, Вы меня не поняли.
все Ваши стрчки остаются, просто между 3 и 4 вставьте мой код.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 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);
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2015, 23:08
Привет! Вот еще темы с ответами:

Как получить значение из программно созданных Edit-ов? - Программирование Android
public class MainActivity extends Activity implements OnClickListener { private EditText text1,text2; private int...

.NET 4.x Обработчик событий динамически созданных кнопок - C#
Уважаемые форумчане, помогите студентам! У нас есть функция, которая создает количество кнопок, равное количеству файлов в папке ...

Обработчик цыклически созданных кнопок - C++ Builder
здравствуйте, у меня следующая проблема, во время создания формы создаются кнопки таки образом:TButton *Button; int i; for (i = 1;...

.NET 4.x Удаление динамически созданных кнопок - C#
Создаётся динамически, к примеру, 10 кнопок. На каждую созданную кнопку по нажатию ПКМ должно вызываться контекстное меню с пунктом...


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

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
24.11.2015, 23:08
Ответ Создать тему
Опции темы

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