因此我基本上尝试在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,无论我按什么按钮。 我做错了什么?
谢谢。
答案 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"
);