Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
андреич
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
#1

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

03.03.2012, 22:35. Просмотров 3281. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2012, 22:35
Ответы с готовыми решениями:

Обработка событий
Добрый день!Пишу в данный момент книгу-приложение.Вопрос такой:как можно...

Обработка событий в ExpandableListView
Всем привет. Только начал осваивать Android Studio как столкнулся с рядом...

Обработка событий в цикле
Здравствуйте! Есть массив параметров ArrayList&lt;int&gt; params = new...

Обработка событий + прорисовка
Доброго времени суток, создаю свое первое приложение на Android. У меня есть...

Обработка событий в Service
Ребят,как можно отловить события в Service? Что-то не совсем могу понять как...

4
Bes-s
31 / 31 / 0
Регистрация: 05.11.2011
Сообщений: 178
04.03.2012, 00:24 #2
на днях столкнулсо с такой же проблеммой.
1. массив должен бытьглобальным
2. у каждой кнопки - свой уникальный ID
3. считываем ID нажатой кнопки - и вуаля! обрабатываем событие по отношению к нужной кнопке
0
андреич
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
04.03.2012, 09:56  [ТС] #3
Цитата Сообщение от 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 #4
мне про константу кричало, пока массив кнопок был объявлен в функции а не в классе. объявил в классе - все заработало.
и еще у меня обработчик события в OnClickListener сидит...
0
андреич
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
04.03.2012, 15:01  [ТС] #5
я обработал вот таким образом
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
04.03.2012, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2012, 15:01

Обработка нажатия кнопок
Всем привет! Целый день мучала проблема. Что имею: телефон по bluetooth...

Обработка нажатия кнопок
Здравствуйте! Недавно начал изучать программирование под Android. Узнал что...

Обработка событий дочерним и родительским элементами
Здравствуйте, Всем... В HTML + JS было так.. например: &lt;div&gt; &lt;ul&gt;...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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