0

我有这个电台对话框

    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();

当我单击按钮时,会出现此单选对话框。问题是它不存储选择。例如,如果我选择正常单击“确定”,然后单击按钮再次显示 Radio Dialog,则没有存储值。为什么要这样做?我该怎么做才能让他记住这个选择?

4

1 回答 1

0

builder.setSingleChoiceItems(items, -1, new 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;


                             }
                             }
                         });
于 2013-10-28T16:51:00.407 回答