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

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

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

Один обработчик для нескольких switch - Программирование Android

13.01.2016, 14:55. Просмотров 312. Ответов 6
Метки нет (Все метки)

Привет. Делаю приложение для управления устройством на ардуино по блютуз.
Кое как разобрался как заставить работать switch, но у меня на каждый переключатель свой обработчик, как можно сделать, чтобы был только 1 обработчик, а определение действий происходило в зависимости от id переключателя?
Вот что имею сейчас:
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
switch1 = (Switch) findViewById(R.id.switch1);
 
        switch1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
        {
 
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // в зависимости от значения isChecked выводим нужное сообщение
                if (isChecked) {
                    Toast.makeText(getApplicationContext(), "SET 1 ON", Toast.LENGTH_SHORT).show();
                    sendData("switch_1-1|");
                } else {
                    Toast.makeText(getApplicationContext(), "SET 1 OFF", Toast.LENGTH_SHORT).show();
                    sendData("switch_1-0|");
                }
            }
        });
 
        switch2 = (Switch) findViewById(R.id.switch2);
        switch2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener()
        {
 
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                // в зависимости от значения isChecked выводим нужное сообщение
                if (isChecked) {
                    Toast.makeText(getApplicationContext(), "SET 2 ON", Toast.LENGTH_SHORT).show();
                    sendData("switch_2-1|");
                } else {
                    Toast.makeText(getApplicationContext(), "SET 2 OFF", Toast.LENGTH_SHORT).show();
                    sendData("switch_2-0|");
                }
            }
        });
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2016, 14:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Один обработчик для нескольких switch (Программирование Android):

Один обработчик для нескольких ImageButton - Программирование Android
Есть у меня несколько ImageButton на TableView. На них изображение. Создаю обработчик дерез установку в XML android:onClick. Как можно для...

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

Один MediaPlayer для нескольких файлов - Программирование Android
В приложении имеется несколько кнопок. По нажатию на каждую из них проигрывается MediaPlayer со своим звуком, то есть для каждой кнопки -...

Switch разные картинки для on и off - Программирование Android
Добрый день! подскажите пожалуйста как можно поставить разные картинки для переключателя switch? android:thumb="@drawable/sw_on" так я...

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

Обработчик событий для динамического Button - Программирование Android
у меня есть radiogroup с 2-мя radiobutton и в зависимости от них устанавливается тот или иной layout на странице. В отдельных методах я...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
13.01.2016, 16:08 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
создаешь слушатель
Java
1
2
3
4
5
6
7
8
9
10
11
        CompoundButton.OnCheckedChangeListener listener = new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                switch (buttonView.getId()) {
                    case R.id.switch1:
                        // bla bla
                    case R.id.switch2:
                        // bla bla
                }
            }
        };
потом его можно назначать куда требуется
Java
1
2
        switch1.setOnCheckedChangeListener(listener);
        switch2.setOnCheckedChangeListener(listener);
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 731
13.01.2016, 16:19 #3
попробовал бы
Java
1
switch (buttonView.getId())
vertraut2009
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 15
13.01.2016, 16:20  [ТС] #4
Огромное спасибо) Все заработало)!
fraley
105 / 105 / 38
Регистрация: 24.05.2015
Сообщений: 317
14.01.2016, 13:44 #5
Цитата Сообщение от Паблито Посмотреть сообщение
создаешь слушатель
break надо добавить в конце каждого кейса.
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
14.01.2016, 14:10 #6
ежу понятно что надо ставить, это к вопросу ТСа никак не относится и захламлять пример лишним кодом я не собирался

а вообще, если троллить, ставить там break или не ставить зависит от задачи
fraley
105 / 105 / 38
Регистрация: 24.05.2015
Сообщений: 317
14.01.2016, 15:07 #7
Я никого не троллил.
Просто указал на возможную проблему.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2016, 15:07
Привет! Вот еще темы с ответами:

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

Один обработчик для нескольких кнопок - Delphi
Вопрос: Как для калькулятора создать один обработчик для цифровых кнопок (0-9), чтобы для каждой не писать ....+1 (+2) и т.д.

Один обработчик для нескольких PictureBox - C#
Всем доброго времени суток. Есть много пикчер боксов около 16 штук, и на каждый нужно привязать клик. И что бы не писать в куче...

Один обработчик для нескольких Image - C++ Builder
Ребят подскажите плиз как работать с обработчиками компонентов а то ни где инфы нет "русскоязычной". Вопрос имеется несколько компонентов...


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

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

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