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

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

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

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

13.01.2016, 14:55. Просмотров 271. Ответов 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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2240 / 1813 / 564
Регистрация: 12.05.2014
Сообщений: 6,456
Завершенные тесты: 1
13.01.2016, 16:08     Один обработчик для нескольких switch #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
Сообщений: 729
13.01.2016, 16:19     Один обработчик для нескольких switch #3
попробовал бы
Java
1
switch (buttonView.getId())
vertraut2009
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 8
13.01.2016, 16:20  [ТС]     Один обработчик для нескольких switch #4
Огромное спасибо) Все заработало)!
fraley
103 / 103 / 37
Регистрация: 24.05.2015
Сообщений: 312
14.01.2016, 13:44     Один обработчик для нескольких switch #5
Цитата Сообщение от Паблито Посмотреть сообщение
создаешь слушатель
break надо добавить в конце каждого кейса.
Паблито
2240 / 1813 / 564
Регистрация: 12.05.2014
Сообщений: 6,456
Завершенные тесты: 1
14.01.2016, 14:10     Один обработчик для нескольких switch #6
ежу понятно что надо ставить, это к вопросу ТСа никак не относится и захламлять пример лишним кодом я не собирался

а вообще, если троллить, ставить там break или не ставить зависит от задачи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2016, 15:07     Один обработчик для нескольких switch
Еще ссылки по теме:

Android Один обработчик для динамических кнопок
Один экземпляр класса для всех активити Android
Android Нестандартный переключатель Switch
Android Обработчик нажатия для вложенных лайаутов
Android Один MediaPlayer для нескольких файлов

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

Или воспользуйтесь поиском по форуму:
fraley
103 / 103 / 37
Регистрация: 24.05.2015
Сообщений: 312
14.01.2016, 15:07     Один обработчик для нескольких switch #7
Я никого не троллил.
Просто указал на возможную проблему.
Yandex
Объявления
14.01.2016, 15:07     Один обработчик для нескольких switch
Ответ Создать тему
Опции темы

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