我想從多個活動訪問單個共享首選項文件。我遇到了this similar question,它有一個很好解釋的答案,建議爲此創建一個輔助類。所以我也跟着。這裏是我的代碼: -無法解析方法'getString'錯誤:SharedPreferences幫助程序類
1 //helper class
2 public class AppUserInfo {
3 public static final String KEY_PREF_USERNAME = "username";
3 public static final String APP_USER_INFO =
4 AppUserInfo.class.getSimpleName();
5 private SharedPreferences _sharedPrefs;
6 private SharedPreferences.Editor _prefEditor;
7
8 public AppUserInfo(Context context) {
9 this._sharedPrefs = context.getSharedPreferences(APP_USER_INFO,Activity.MODE_PRIVATE);
10 this._prefEditor = _sharedPrefs.edit();
11 }
12
13 public String getUsername() {
14 return _prefEditor.getString(KEY_PREF_USERNAME, "");
15 }
16
17}
然而,當定義getUsername()
法,IDE(Android Studio中)所指出的錯誤如下: -
Cannot resolve method 'getString(java.lang.String,java.lang.String)
(也試過實現沒有輔助類中的溶液。而結果..)
我會得到相同的錯誤時,在已經創建的共享user_info
偏好文件中活動A並存儲鍵值對{username : [email protected]}
在裏面,我試圖做到這一點在活動B: -
SharedPreferences _userInfo = getSharedPreferences("user_info", Context.MODE_PRIVATE);
SharedPreferences.Editor _prefEditor = _userInfo.edit();
String username = _prefEditor.getString("username","");
如何解決這個問題? 我也接受不同的方法,如果有的話。
您無法從編輯器中獲取字符串 - 使用_sharedPrefs代替。 – Darwind
@Darwind哦,該死的我!非常感謝.. –
嘿嘿,沒問題 - 有時它是讓你感到困惑的小事情:-) – Darwind