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

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

Войти
Регистрация
Восстановить пароль
 
KorPaEv
55 / 31 / 4
Регистрация: 08.07.2011
Сообщений: 197
#1

Обработчик события ToggleButton - Программирование Android

04.12.2015, 06:23. Просмотров 366. Ответов 2
Метки нет (Все метки)

Доброго времени суток!
Имеется ToggleButton на форме
На кнопку прикручена функция, которая вызывает форму Yes/No
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
36
37
38
39
public void ToggleButtonClick(View view)
    {
        switch (view.getId())
        {
            case R.id.tgbRelayOne:
            {
                ShowAlertDialog(tgbOne);
                break;
            }
        }
     }
 
    public void ShowAlertDialog(ToggleButton tButton)
    {
        if (tButton.isChecked()) tButton.setChecked(true);
        else tButton.setChecked(false);
 
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
 
        alertDialog.setTitle("Изменить состояние...");
        alertDialog.setMessage("Изменить состояние принудительно?");
 
        alertDialog.setPositiveButton("ДА", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog,int which)
            {
                SavePerfomance("", false);
            }
        });
 
        alertDialog.setNegativeButton("НЕТ", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {
                dialog.cancel();
            }
        });
        alertDialog.show();
    }
Соответственно когда я нажимаю на кнопку у меня фактически кнопка нажимается до того как вылезло окно с вопросом и если я тыкаю нет, то кнопка остается нажатой - это неверно, если я нажимаю нет, то состояние кнопки не должно меняться, если же да, то состояние кнопки переходит в нажато..
Я пробовал передать состояние в форму Да-Нет но форма вызывается уже после смены состояния фактически как показал отладчик..
Каким образом мне сохранять состояние и по нажатию нет - не менять его??
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2015, 06:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработчик события ToggleButton (Программирование Android):

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

Не работает обработчик события кнопки - Программирование Android
Не могу разобраться почему выскакивает ошибка..пока только учусь...

Определение нажатия toggleButton - Программирование Android
У меня несколько toggleButton, как определять нажатие каждой? В этом методе. @Override public void...

Как после окончания mp3 перевести ToggleButton в состояние выключено - Программирование Android
Я только не давно начал изучать андроид и программирование под него так что прошу прощение за возможно тупые вопросы. Вопрос у меня...

Чек большого количества togglebutton при прогрессе seekBar тормозит - Программирование Android
Суть проблемы: есть 81 togglebutton у которых меняется background при помощи селектора. Эти кнопки чекаются за счет прогресса Seekbar....

Обработчик OnClickListener - Программирование Android
Добрый день, начал изучать интерфейсы и как оказалось в JAVA нельзя создать экземпляр интерфейса. Здесь же OnClickListener oclBtnOk =...

2
Pablito
2503 / 1987 / 619
Регистрация: 12.05.2014
Сообщений: 6,930
Завершенные тесты: 1
04.12.2015, 16:02 #2
Цитата Сообщение от KorPaEv Посмотреть сообщение
if (tButton.isChecked()) tButton.setChecked(true); else tButton.setChecked(false);
што это такое?
2
Spelcrawler
527 / 497 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
04.12.2015, 17:25 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Паблито Посмотреть сообщение
што это такое?
Похоже на
Java
1
boolean b = String.valueOf(button.isChecked()).equals("true");
Добавлено через 59 минут
KorPaEv, если серьезно - при нажатии на эту кнопку она сразу переключается, до вызова onClick(). Но можно установить onTouchListener
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
final ToggleButton button = (ToggleButton) findViewById(R.id.toggle);
button.setOnTouchListener(new View.OnTouchListener() {
     @Override
    public boolean onTouch(View v, MotionEvent event) {
        if(event.getAction() == MotionEvent.ACTION_UP) {
            if(button.isChecked()) {
                button.setChecked(false);
            } else {
                showCheckedDialog(button);
            }
        }
 
        return true;
    }
});
И метод для вызова диалога
Java
1
2
3
4
5
6
7
8
9
10
11
12
    private void showCheckedDialog(final ToggleButton button) {
        AlertDialog.Builder builder = new AlertDialog.Builder(button.getContext());
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                button.setChecked(true);
            }
        });
        builder.setNegativeButton("Нет", null);
 
        builder.show();
    }
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2015, 17:25
Привет! Вот еще темы с ответами:

Обработчик нажатий - Программирование Android
Всем доброго времени суток. Я новичок в программировании и буду очень признателен в помощи. Вопрос такой: мне нужно в обработчике по...

Обработчик кнопки - Программирование Android
С помощью нажатия хочу перелистывать интерфейс приложения. XML заранее уже сделаны в layout - без ошибок. Если одну кнопку обрабатываю...

Обработчик кнопки - Программирование Android
В Activity_main.xml 2 кнопки c атрибутом android:onClick (onpizz & oncrecs), по нажатию на которые должны открываться РАЗНЫЕ AlertDialog....

Сервер-обработчик - Программирование Android
Такой вопрос, прогить под андроид только начал. Скачал джава библиотеку, эклипс, аппарат для тестирования htc one v. Хочу написать обычный...


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

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

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