我有两个按钮,现在如何再次启动活动时如何知道使用sharedpreference单击的最后一个按钮?
代码:
private SharedPreferences sharedPreferences;
SharedPreferences.Editor编辑器;
在onCreate中初始化:
sharedPreferences = getSharedPreferences(“ MyPref”,Context.MODE_PRIVATE);
editor = sharedPreferences.edit();
我试图这样做,但是绝对错误的方式
if (sharedPreferences.getString("lamp", "on")) {
Toast.makeText(this, "onnnn", Toast.LENGTH_SHORT).show();
}
if (sharedPreferences.getString("lamp", "off")){
Toast.makeText(this, "offfff", Toast.LENGTH_SHORT).show();
}
第一个按钮
public void lampOff(View view) {
Log.d(tag, "lampOFF");
lamp_notConnected_Image.setVisibility(View.INVISIBLE);
lamp_Connected_Image.setVisibility(View.VISIBLE);
editor.putString("lamp", "off");
editor.commit();
}
第二个按钮:
public void lampOn(View view) {
Log.d(tag, "lampO");
lamp_notConnected_Image.setVisibility(View.VISIBLE);
lamp_Connected_Image.setVisibility(View.INVISIBLE);
editor.putString("lamp", "on");
editor.commit();
}
答案 0 :(得分:1)
问题出在您的情况if (sharedPreferences.getString("lamp", "on"))
上,您没有将此字符串与任何东西进行比较,无论是使用
if (sharedPreferences.getString("lamp", "on").equals("on"))
或
将值另存为布尔值editor.putBoolean("lamp", true);
,然后可以比较您的操作方式:if (sharedPreferences.getString("lamp", true))
请注意,这里(“灯”,“开”)的第一个参数是标识,第二个是默认值,以防万一。
中查看更多答案 1 :(得分:1)
您需要在onCreate方法中检查共享首选项值,例如:
if (sharedPreferences.getString("lamp", "off").equals("on")) { //assumed "off" as default
Toast.makeText(this, "onnnn", Toast.LENGTH_SHORT).show();
// on button is pressed last time
}
else{
Toast.makeText(this, "offfff", Toast.LENGTH_SHORT).show();
// off button is pressed last time or no button press so far
}