如何使用共享首选项保存警告对话框
问题描述:
我想要做的是使用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
答
而不是所有这些都只是将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
我编辑并改变了你说的话,但它不工作......任何想法? – jaimito