我在一个活动中使用共享首选项来存储user_id和name。我想从另一个活动中获取user_id。我可以从First活动中获取价值,但我无法从其他活动中获取价值。 需要做些什么改变?
定义
SharedPreferences sharedPreferences = LoginActivityMerchant.this.getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
//Creating editor to store values to shared preferences
SharedPreferences.Editor editor = sharedPreferences.edit();
//Adding values to editor
editor.putBoolean(config.LOGGEDIN_SHARED_PREF, true);
editor.putString(config.SHARED_PREF_NAME, user);
editor.putString("UserId",response.toString());
config.KEY_USERNAME = user;
//Saving values to editor
editor.commit();
呼叫
final SharedPreferences SharedPreferences= getSharedPreferences("LoginActivityMerchant",MODE_PRIVATE);
String Userid=SharedPreferences.getString("UserId", "");
答案 0 :(得分:1)
您使用的偏好很可能不同。
确保此调用中的第一个参数具有相同的值
getSharedPreferences(config.SHARED_PREF_NAME, Context.MODE_PRIVATE);
和
getSharedPreferences("LoginActivityMerchant",MODE_PRIVATE);
仅当config.SHARED_PREF_NAME
等于"LoginActivityMerchant"
时才会有效,而我猜它不会。
答案 1 :(得分:0)
SharedPreferences mSharedPreferences;
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
//get string
String value = mSharedPreferences.getString("VAL", "Null")
您可以在应用程序的任何位置打开SharedPreferences
答案 2 :(得分:-1)
从共享偏好设置编辑数据
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("text", mSaved.getText().toString());
editor.putInt("selection-start", mSaved.getSelectionStart());
editor.putInt("selection-end", mSaved.getSelectionEnd());
editor.apply();
从共享偏好设置检索数据
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
int selectionStart = prefs.getInt("selection-start", -1);
int selectionEnd = prefs.getInt("selection-end", -1);
上面是一个简单的例子,在你的代码中应用它:)
希望它可以帮助你:)