如何使用共享首选项保存警告对话框

问题描述:

我想要做的是使用SharedPreference保存最后一个状态,但我不知道我的mystake是什么。我说这不是保存,因为当我旋转屏幕时,弹出alertDialog对话框。如何使用共享首选项保存警告对话框

AlertDialog.Builder builder = new AlertDialog.Builder(this); 

builder.setTitle("Alert Dialog") 
.setMessage("Startup Button Visibility:") 
.setPositiveButton("Hidden", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     if(buttonVisible == true) 
     { 
      myLayout2.setVisibility(View.INVISIBLE); 
     } 
     else 
      myLayout2.setVisibility(View.VISIBLE); 


     SharedPreferences myPrefs = getPreferences(MODE_PRIVATE); 
     boolean storedPreference = myPrefs.getBoolean("Skip", true); 
     SharedPreferences.Editor editor = myPrefs.edit(); 
     if(storedPreference != false) 
     { 
      storedPreference= true; 
     } 
     editor.putBoolean("Skip", storedPreference); 
     editor.commit(); 
    } 
}) 

.show(); 

这是所有工作正常,但要保存的值相同,你刚才读:

int storedPreference = preferences.getInt("Skip", 0); 
    editor.putInt("Skip", storedPreference); 

,而你所需要的,在某些时候,将其更改为1做出任何实际效果,否则总是0。您的代码也缺少与Skip相关的任何条件,因此无论如何都会显示对话框。而我宁愿使用Bool而不是Int

+0

我编辑并改变了你说的话,但它不工作......任何想法? – jaimito

而不是所有这些都只是将android:configChanges="orientation"放入您的Manifest文件的Activity代码中。这会自动处理屏幕方向更改。

+0

这没有奏效,再次弹出警告对话框 – jaimito

int storedPreference = preferences.getInt("Skip", 1); 
     SharedPreferences.Editor editor = preferences.edit(); 
     if(storedPreference==1) 
     { 
     storedPreference = 0; 
     } 
     editor.putInt("Skip", storedPreference); 
     editor.commit(); 

now after this u should check for 0, where trying stop the pop up of the dialog box 
+0

对不起,我在android中很新,我不知道你指的是哪个值 – jaimito

+0

仍然没有工作:/我已经完成了你告诉我的内容弹出对话框 – jaimito

+0

后ur代码..其litlle位棘手的逻辑。 – Sush