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

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

Войти
Регистрация
Восстановить пароль
 
vertraut2009
0 / 0 / 0
Регистрация: 13.01.2016
Сообщений: 8
13.01.2016, 14:55     Один обработчик для нескольких switch #1
Привет. Делаю приложение для управления устройством на ардуино по блютуз.
Кое как разобрался как заставить работать 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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
резкий
1890 / 1624 / 505
Регистрация: 12.05.2014
Сообщений: 5,852
Завершенные тесты: 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
 Аватар для Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 716
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
90 / 90 / 31
Регистрация: 24.05.2015
Сообщений: 255
14.01.2016, 13:44     Один обработчик для нескольких switch #5
Цитата Сообщение от Паблито Посмотреть сообщение
создаешь слушатель
break надо добавить в конце каждого кейса.
Паблито
резкий
1890 / 1624 / 505
Регистрация: 12.05.2014
Сообщений: 5,852
Завершенные тесты: 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
90 / 90 / 31
Регистрация: 24.05.2015
Сообщений: 255
14.01.2016, 15:07     Один обработчик для нескольких switch #7
Я никого не троллил.
Просто указал на возможную проблему.
Yandex
Объявления
14.01.2016, 15:07     Один обработчик для нескольких switch
Ответ Создать тему
Опции темы

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