2014-01-05 2 views
1

Как изменить состояние toggleButton Только после того, как я нажму OK в диалоговом окне, и если я нажму «Cancel toggleButton», это не изменится, моя проблема заключается в том, что toggleButton всегда переключается, так что есть пример или конкретный что необходимо сделать раньше?ToggleButton State OnClick

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(); 
    } 
+0

В вашем объявленном коде отсутствуют закрывающие скобки, в частности, в вашем первом методе onClick. Скомпилирует ли это? –

+0

Нет, я удалил все и сохранил часть вопроса, потому что мне просто нужен хотя бы пример: D – user1928775

ответ

2

, как я понимаю ваш вопрос, кажется, исправить легко рассмотреть этот код
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); 
       } 
      }); 

hop будет полезен :)

+0

Спасибо, этого должно быть достаточно: D – user1928775

Смежные вопросы