从LoginActivity到MainActivity的共享偏好

时间:2018-03-12 16:38:11

标签: java android sharedpreferences

我想从LoginActivity中保存一个值并将其提供给我的MainActivity,但是当前Log.d没有显示任何内容。 我尝试使用共享首选项。

我的LoginActivity:

// I want to save email to mainactivity
SharedPreferences webrtcOptions = getSharedPreferences("webrtcOptions", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = webrtcOptions.edit();
editor.putString("email", email);
editor.commit();

在我的MainActivity中,我尝试这样称呼它:

    SharedPreferences webrtcOptions = getSharedPreferences("webrtcOptions", 0);
    String currentUserMail = webrtcOptions.getString("email", "test");
    Log.d("HERE", currentUserMail);

2 个答案:

答案 0 :(得分:1)

尝试使用putExtra将值发送到Activities中的另一个LoginActivity

Intent i = new Intent(LoginActivity.this, MainActivity.class);   
    String strName = null;
    i.putExtra("email", email);

MainActivity中,您可以获得如下值:

String newString;
if (savedInstanceState == null) {
    Bundle extras = getIntent().getExtras();
    if(extras == null) {
        newString= null;
    } else {
        newString= extras.getString("email");
    }
} else {
    newString= (String) savedInstanceState.getSerializable("email");
}

答案 1 :(得分:0)

Log.d至少应该显示您的字符串"HERE",如果您看不到它可能有以下原因之一

  1. 您的Log.d代码未执行,请确保执行
  2. 或者您的android工作室日志窗口配置错误,然后执行以下操作:
  3. 如果您没有看到应用中的日志,请检查您的Android工作室的日志窗口,然后确保您已选择

    • 正确的模拟器或设备
    • 正确的应用
    • 正确的过滤器
    • 将搜索字段设为空