【发布时间】:2017-03-16 19:30:02
【问题描述】:
所以我基本上是在尝试通过在 activity1 中按下按钮来为 activity2 设置 BG 图像。
我正在使用 sharedpreference,因此该选项将始终保留。
问题是,按下按钮后,我将一个字符串保存到 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();
}
}
然后,在activity2的onCreate中:
SharedPreferences background = getSharedPreferences("Background", MODE_PRIVATE);
String chosenBackground = background.getString("SelectedBg", null);
Toast.makeText(this,"chosenBackground:" + chosenBackground, Toast.LENGTH_SHORT).show();
无论我按什么按钮,最后一个 Toast 都会打印出 selectedBackground:null。 我做错了什么?
谢谢。
【问题讨论】:
-
您的密钥错误 - 将
SelectedBg中的“S”更改为小写。最好还是使用常量键值并引用它们(如果它们永远不会改变)。
标签: android android-studio sharedpreferences