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

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

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

Как обращаться к кнопке из массива методом switch? - Android

02.06.2014, 08:32. Просмотров 682. Ответов 5
Метки нет (Все метки)

Всем привет!

Создал массив кнопок:
Java
1
Button buttons[] = new Button[100];
А как обращаться к кнопкам из массива методом switch я не знаю((
Только не надо давать ссылки на книги на озоне.

Спасибо!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 08:32     Как обращаться к кнопке из массива методом switch?
Посмотрите здесь:

Android Клиент bluetooth. как в кнопке правильно вызвать метод для подключения?
Android Как менять картинки на кнопке при нажатии?
Android По строке TextView щёлкать как по кнопке с обработкой события
Android Как сделать текст на кнопке зачеркнутым (по нажатию на эту кнопку)?
Android Рисование на кнопке
Android Сбросил пароли БД после предложение перестало обращаться
Android Как прописать ссылки на сторонний ресурс через switch
Android Как сделать выход из приложения по кнопке выход
Как заменить иконку на кнопке? Android
Как поместить Switch в NavigationView? Android
Android Анимация по кнопке
Как листать фрагменты в ViewPager по кнопке? Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.06.2014, 09:54     Как обращаться к кнопке из массива методом switch? #2
Этой строчкой вы лишь создали массив ссылок на Button. Все ссылки сейчас равны null, поэтому сейчас массив нужно заполнить:
Java
1
2
3
4
        Button buttons[] = new Button[100];
        for (int i=0 ; i<100; i++) { 
            buttons[i] = new Button(getApplicationContext());
        }
Ну а потом можно обращаться к элементам массива и делать с кнопками что угодно:

Java
1
2
        buttons[0].setText("test");
        buttons[1].setBackgroundColor(Color.RED);
А как обращаться к кнопкам из массива методом switch я не знаю
Опишите поподробнее этот момент
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
03.06.2014, 00:11  [ТС]     Как обращаться к кнопке из массива методом switch? #3
angryrobot,
Цитата Сообщение от angryrobot Посмотреть сообщение
Опишите поподробнее этот момент
Я хотел создать onClickListener, чтобы активити использовался в качестве обработчика (На сколько я знаю - это самый экономный способ).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MainActivity extends Activity implements OnClickListener {
 
...
 
@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (?) {   // Не понятно что писать
        case ?:    // Тут тоже
            buttons[0].setText("asdf");   // Любой код
            break;
        }
    }
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,069
03.06.2014, 08:28     Как обращаться к кнопке из массива методом switch? #4
Если у вас массив new Button[100], то 100 case будете писать?
А по сути надо получать int кнопки и с ним работать.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.06.2014, 10:10     Как обращаться к кнопке из массива методом switch? #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от rus_artur4ik Посмотреть сообщение
Я хотел создать onClickListener, чтобы активити использовался в качестве обработчика (На сколько я знаю - это самый экономный способ).
Нужно назначить каждой кнопке уникальный идентификатор и задать для неё один и тот же обработчик нажатия. А внутри обработчика, проверять этот идентификатор:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public class MainActivity extends ActionBarActivity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button buttons[] = new Button[100];
        for (int i=0 ; i<100; i++) { 
            buttons[i] = new Button(getApplicationContext());
            //Назначаем идентификатор
            buttons[i].setId(i);
            //Назначаем листенер
            buttons[i].setOnClickListener(this);
        }
    }
    
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case 0:
            ((Button) v).setText("test1111");
            break;
        case 1:
            ((Button) v).setText("test2222");
            break;
        case 2:
            ((Button) v).setText("test3333");
            break;
        /// итд
        default:
            break;
        }
    }
 
}
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
03.06.2014, 11:55  [ТС]     Как обращаться к кнопке из массива методом switch? #6
Rube,
Цитата Сообщение от Rube Посмотреть сообщение
Если у вас массив new Button[100], то 100 case будете писать?
А по сути надо получать int кнопки и с ним работать.
А как?

Добавлено через 9 минут
angryrobot,
Спасибо вам большое, все работает!
Yandex
Объявления
03.06.2014, 11:55     Как обращаться к кнопке из массива методом switch?
Ответ Создать тему
Опции темы

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