2013-10-28 108 views
0

我有,當我點擊一個按鈕該高層對話RadioDialog不保留選擇

case R.id.main_btn_ics: 
    AlertDialog levelDialog; 

    // Strings to Show In Dialog with Radio Buttons 
    final CharSequence[] items = {"Normal","Silent","Vibrate"}; 

        // Creating and Building the Dialog 
        AlertDialog.Builder builder = new AlertDialog.Builder(this); 
        builder.setTitle("Select a profile"); 
        builder.setNegativeButton("OK", null); 
        builder.setCancelable(false); 

        builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int item) { 
         AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 

         switch(item) 
         { 
          case 0: 
           audiomanage.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
             break; 
          case 1: 
           audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
            break; 
          case 2: 
           audiomanage.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 
            break; 


         } 
         } 
        }); 
        levelDialog = builder.create(); 
        levelDialog.show(); 

此單選對話框出現。問題是它不存儲選擇。例如,如果我選擇正常,單擊「確定」,然後單擊按鈕以再次顯示無線電對話框,這沒有存儲值。爲什麼要這樣做?我怎麼能讓他記住這個選擇?

回答

0

builder.setSingleChoiceItems(項目,-1,新DialogInterface.OnClickListener(){

取代-1與以前選用的東西。

final AudioManager audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
int selectedIndex = -1; 

if (audiomanage.getRingerMode() == AudioManager.RINGER_MODE_NORMAL){ 
    selectedIndex = 0; 
} else if (audiomanage.getRingerMode() == AudioManager.RINGER_MODE_SILENT){ 
    selectedIndex = 1; 
} else if (audiomanage.getRingerMode() == AudioManager.RINGER_MODE_VIBRATE){ 
    selectedIndex = 2; 
} 

    builder.setSingleChoiceItems(items, selectedIndex , new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int item) { 

          switch(item) 
          { 
           case 0: 
            audiomanage.setRingerMode(AudioManager.RINGER_MODE_NORMAL); 
              break; 
           case 1: 
            audiomanage.setRingerMode(AudioManager.RINGER_MODE_SILENT); 
             break; 
           case 2: 
            audiomanage.setRingerMode(AudioManager.RINGER_MODE_VIBRATE); 
             break; 


          } 
          } 
         }); 
+0

例如?要放什麼東西來代替-1 ? –

+0

我更新了我的答案,查看了上面的內容。 –

+0

嗯,它工作正常,當我關閉應用程序時,我失去了存儲的數據。我該如何解決? –