Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36

Обработка событий для массива кнопок

03.03.2012, 22:35. Показов 5270. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. У меня в программе создается массив из N ImageButton.
и для каждой кнопки нужно обработать событие нажатия.
Java
1
2
3
4
5
6
7
8
9
10
 
//это создание и инициализация массива кнопок
 
                 caseLevel = new ImageButton[numLevel];     
          for(int i=0;i<numLevel;i++)
          {           
              caseLevel[i] = new ImageButton(this);           
              caseLevel[i].setBackgroundResource(id[i]);              
              caseLevel[i].setOnClickListener(this);
          }
подскажите как обработать событие нажатия на i-ю кнопку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.03.2012, 22:35
Ответы с готовыми решениями:

Обработка событий для кнопок в RAD Studio 10.3
Доброе утро! Я учусь программировать на RAD Studio 10.3 и GLScene 1.8. Я добавил в проект две камеры, куб, кольцо, два источника освещения...

Программное создание кнопок и обработка событий для каждой из созданных
Здравствуйте! Понадобилось создать несколько кнопок в зависимости от количества строк в результате запроса к БД. Но как затем обработать...

Обработка событий нажатия кнопок
задан блок &lt;div class=&quot;Block&quot;&gt; &lt;/div&gt; Как мне обработать событие по клику на него мышкой? Когда задан атрибут id, то понятно....

4
 Аватар для Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
04.03.2012, 00:24
на днях столкнулсо с такой же проблеммой.
1. массив должен бытьглобальным
2. у каждой кнопки - свой уникальный ID
3. считываем ID нажатой кнопки - и вуаля! обрабатываем событие по отношению к нужной кнопке
0
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
04.03.2012, 09:56  [ТС]
Цитата Сообщение от Bes-s Посмотреть сообщение
на днях столкнулсо с такой же проблеммой.
1. массив должен бытьглобальным
2. у каждой кнопки - свой уникальный ID
3. считываем ID нажатой кнопки - и вуаля! обрабатываем событие по отношению к нужной кнопке
массив и так глобальный, про ID я знаю, но когда пишу обработчик событий

Java
1
2
3
4
5
6
7
void onClick(View v)
{
   switch(v.getId())
   {
      case caseLevel[0].getId():  <= в этом месте он мне кричит, что выражение должно быть константой
   }
}
собственно поэтому я и в замешательстве сейчас
0
 Аватар для Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
04.03.2012, 13:54
мне про константу кричало, пока массив кнопок был объявлен в функции а не в классе. объявил в классе - все заработало.
и еще у меня обработчик события в OnClickListener сидит...
0
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
04.03.2012, 15:01  [ТС]
я обработал вот таким образом
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
caseLevel[i].setOnClickListener(new OnClickListener(){
   public void onClick(View v) 
   {
      for(int i=0;i<numLevel;i++)
      {
         if(v.getId()==caseLevel[i].getId())
         {
            caseLevel[onClick].setImageResource(id[onClick]);
            onClick = i;
            caseLevel[i].setImageResource(idC[i]);
            break;
         }
      }
   }
});
однако, он срабатывает только на первую кнопку, на какую бы я не нажал

Добавлено через 6 минут
вопрос решен, нужно было просто еще задать id для каждой кнопки:
Java
1
caseLevel[i].setId(i);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2012, 15:01
Помогаю со студенческими работами здесь

Обработка событий кнопок Button
Доброго времени суток!!! Во время создания формы создаются 10 кнопок таки образом: for(int i = 1; i &lt;= 11; i++) { TButton *a...

Обработка событий для массива CheckBox
Доброго времени суток. Нужна ваша помощь. Я в программе создаю массив чекбоксов. После этого добавляю обработчик событий для...

Обработка событий OnClick для массива TImage
Добрый день. Я совсем новичек в программировании, поэтому возник вопрос. Я динамически создаю несколько TImage из Imagelist. Как самым...

Передача индекса массива кнопок в обработчик событий
Проблема такая: у меня есть массив кнопок, созданные динамично for (k = 0; k &lt; 16; k++) { for (l = 0; l...

Программное создание событий для кнопок
есть главная форма, есть дочерняя. При запуске дочерней создаются программно кнопки и им приписываются события. При закрытие дочерней...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru