Как изменить состояние toggleButton Только после того, как я нажму ОК в диалоговом окне, и если я нажал Отмена, toggleButton не изменился, моя проблема в том, что toggleButton всегда переключается. Итак, есть ли пример или конкретная реализация, которую необходимо выполнить до ?

 toggle1 = (ToggleButton) findViewById(R.id.filterButton);
 //   toggle1.setChecked(getDefaults("Toggle1S",this));
 //  setDefaults("Toggle1S", toggle1.isChecked(), this);

toggle1.setOnClickListener(new OnClickListener() {

    public void onClick(View arg0) {
        if (toggle1.isChecked()) {
            on.start();
            Using();
            if(Use.equals("1"))
            {//Wifi Function
                Toast.makeText(getApplicationContext(), "Filter ON sent using Wifi", Toast.LENGTH_SHORT).show();
                new MyAsyncTask().execute("filter_st","ON");
            }
            else{
                String temp = "Are you want to turn Filter ON using GSM";
                callCheck(SMStitle,temp);
                sm.sendTextMessage(number, null, messages[0], null, null);
                Toast.makeText(getApplicationContext(), "Filter ON sent using GSM number"+number, Toast.LENGTH_SHORT).show();                               

            }

    public void callCheck(String c,String d)
    {
        // Creating alert Dialog with one Button

        AlertDialog alertDialog1 = new AlertDialog.Builder(
        fishtank.this).create();

        // Setting Dialog Title
        alertDialog1.setTitle(c);

        // Setting Dialog Message
        alertDialog1.setMessage(d);


        // Setting OK Button
        alertDialog1.setButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {

                //Toast.makeText(getApplicationContext(),"You clicked on OK", Toast.LENGTH_SHORT).show();
            }
        });
        alertDialog1.setButton("Cancel", new DialogInterface.OnClickListener()    {
               public void onClick(DialogInterface dialog, int which) {
               }
        });

        // Showing Alert Message
        alertDialog1.show();
    }
1
user1928775 5 Янв 2014 в 15:26
В опубликованном вами коде отсутствуют закрывающие скобки, особенно в вашем первом методе onClick. Это компилируется?
 – 
Mike Ortiz
5 Янв 2014 в 15:41
Нет, я удалил все и сохранил ту часть, о которой идет речь, потому что мне просто нужен хотя бы пример: D
 – 
user1928775
5 Янв 2014 в 15:43

1 ответ

Лучший ответ

Насколько я понимаю, ваш вопрос, кажется, легко исправить, рассмотрите этот код
1-

alertDialog1.setButton("OK", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {

                       toggelBt.toggle();
                }
            });

2- и другим способом вы можете сохранить состояние во время выполнения в логической переменной в каждом вызове метода ToggleButton Onclick (используя sharedPreference вместо логического для сохранения и использования при следующем запуске приложения), затем

 Boolean CheckState
 ...
 alertDialog1.setButton("OK", new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface dialog, int which) {

                       if(checkState)//should set uncheck now
                             toggelBt.setChecked(false);
                       else
                             toggelBt.setChecked(true);
                }
            });

Хоп быть полезным :)

2
FxRi4 5 Янв 2014 в 15:50
Спасибо, этого должно быть достаточно: D
 – 
user1928775
5 Янв 2014 в 15:58