2014-01-08 64 views
0

我想要做的是使用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(); 

回答

2

這是所有工作正常,但要保存的值相同,你剛纔讀:

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

,而你所需要的,在某些時候,將其更改爲1做出任何實際效果,否則總是0。您的代碼也缺少與Skip相關的任何條件,因此無論如何都會顯示對話框。而我寧願使用Bool而不是Int

+0

我編輯並改變了你說的話,但它不工作......任何想法? – jaimito

0

而不是所有這些都只是將android:configChanges="orientation"放入您的Manifest文件的Activity代碼中。這會自動處理屏幕方向更改。

+0

這沒有奏效,再次彈出警告對話框 – jaimito

0
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