2012-08-15 29 views
0

當我嘗試使用getSharedPreferences()時,eclipse給了我一個android.Preference.preference.getSharePreferences(),但它不是來自contextWrapper的那個,它有兩個參數。我試圖包含android.content.ContextWrapper.getSharedPreferences(null,0)的全名,但仍然不起作用,eclipse表示無法對非靜態引用進行靜態引用。 有什麼想法?我沒有任何問題調用其他類中的2個參數,例如activity。如何在dialogpreference類中使用getSharedPreferences(String,int)?

public class DialogExPreference extends DialogPreference implements DialogInterface.OnClickListener 
{ 
    SharedPreferences settings; 
    @Override 
    public void onClick(DialogInterface dialog, int which) 
    { 
     if(which==-1) 
     { 
      if(!pw1.getText().toString().equals("")&&!pw2.getText().toString().equals("")) 
      { 

       if(pw1.getText().toString().equals(pw2.getText().toString())) 
       { 
        settings =getSharedPreferences();// android.content.ContextWrapper.getSharedPreferences(null, 0); 
        Editor editor = settings.edit(); 
        editor.putString("password", pw1.getText().toString()); 
        editor.commit();      


        Toast.makeText(getContext(), "Password Saved", Toast.LENGTH_SHORT).show(); 
..... 
+0

我認爲你需要指定類似getSharedPreferences(「myPrefs」,MODE_WORLD_READABLE ); – 2012-08-15 05:17:55

+0

這種方法不知道什麼MOD​​E_WORLD_READABLE也不是0 – 2012-08-15 05:27:43

+0

**建議**你調用getText()太多,只調用一次。 – JoxTraex 2012-08-15 05:39:05

回答

0

您可以檢查下面的代碼可以幫助一件事,你可以使用應用程序上下文

SharedPreferences preferences = getPreference("name_of_pref",MODE_PRIVATE); 
SharedPreferences.Editor editor = preferences.edit(); 
editor.putInt("storedInt", storedPreference); // value to store 
editor.commit(); 

同時檢查鏈接Shared Preferences

相關問題