SharedPreference无法正常工作 - 无法理解原因

时间:2017-03-16 19:30:02

标签: android android-studio sharedpreferences

因此我基本上尝试在activity1中按下按钮为activity2设置BG图像。

我正在使用共享偏好,因此该选项将始终保留。

问题是,按下按钮后,我将字符串保存到SharedPreference:

 public void onClick(View v) {
    SharedPreferences.Editor background = getSharedPreferences("Background", MODE_PRIVATE).edit();
    if(btn1 == v)
    {
        Toast.makeText(this, "btn1", Toast.LENGTH_SHORT).show();
        background.putString("selectedBG", "White");
        background.commit();
    }
    if(btn2 == v)
    {
        background.putString("selectedBG", "Black");
        background.commit();
    }
    if(btn3 == v)
    {
        background.putString("selectedBG", "Blue");
        background.commit();
    }
    if(btn4 == v)
    {
        background.putString("selectedBG", "Brown");
        background.commit();
    }

}

然后,在onCreate of activity2:

 SharedPreferences background = getSharedPreferences("Background", MODE_PRIVATE);
    String chosenBackground = background.getString("SelectedBg", null);
    Toast.makeText(this,"chosenBackground:" + chosenBackground, Toast.LENGTH_SHORT).show();

最后的Toast,打印出selectedBackground:null,无论我按什么按钮。 我做错了什么?

谢谢。

3 个答案:

答案 0 :(得分:0)

SharedPreferences Ids区分大小写

改变这个:

String chosenBackground = background.getString("SelectedBg", null);

对此:

String chosenBackground = background.getString("selectedBG", null);

答案 1 :(得分:0)

 String chosenBackground = background.getString("selectedBG", null);

答案 2 :(得分:0)

您可以使用defaultSharedPreferences简单地从应用的任何位置添加和更改数据:

放任何值示例:

PreferenceManager.getDefaultSharedPreferences(context)
                .edit()
                .putString(KEY, "value")
                .apply();

获取价值:

PreferenceManager.getDefaultSharedPreferences(context)
                .getString(KEY, "Default value"

);