Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不保留选择的RadioDialog_Java_Android_Xml - Fatal编程技术网

Java 不保留选择的RadioDialog

Java 不保留选择的RadioDialog,java,android,xml,Java,Android,Xml,我有这个收音机对话 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

我有这个收音机对话

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

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

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;


                             }
                             }
                         });

例如,用什么来代替-1?好吧,它是有效的,只是当我关闭应用程序时,我丢失了存储的数据。我该如何解决?