2013-10-28 45 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

嗯,它工作正常,当我关闭应用程序时,我失去了存储的数据。我该如何解决? –