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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.71
андреич
1 / 1 / 0
Регистрация: 31.07.2010
Сообщений: 36
#1

Обработка событий для массива кнопок - Программирование Android

03.03.2012, 22:35. Просмотров 3141. Ответов 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
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработка событий для массива кнопок (Программирование Android):

Обработка событий - Программирование Android
Добрый день!Пишу в данный момент книгу-приложение.Вопрос такой:как можно заменить if;else или это будет самое просто решение? Тоесть...

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

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

Обработка событий в Service - Программирование Android
Ребят,как можно отловить события в Service? Что-то не совсем могу понять как сделать,может это вообще не возможно?:D

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

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

4
Bes-s
30 / 30 / 2
Регистрация: 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
30 / 30 / 2
Регистрация: 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
Привет! Вот еще темы с ответами:

Обработка событий при работе с sqlite - Программирование Android
Добрый день, утоните пожалуйста как правильно отработать событие. При обработке SQL запроса если после условия WHERE = идет...

Обработка событий дочерним и родительским элементами - Программирование Android
Здравствуйте, Всем... В HTML + JS было так.. например: &lt;div&gt; &lt;ul&gt; &lt;li&gt; &lt;a href=&quot;&quot;&gt;Link&lt;/a&gt; ...

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

Обработчик событий для ImageButton - Программирование Android
У ImageButton такой же обработчик событий как и у Button? то есть onClickListener функция onClick да?


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

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

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