我试图将新值写入共享首选项并且似乎无法正常工作,我是否遗漏了某些内容。
// this tests output
System.out.println("This OLD ID : "+oldPost+ " - NEW ID :"+postID);
// output : This OLD ID : 5233 - NEW ID :5216
///get old id
SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE);
String oldPost = prefs.getString("newsId", null);
if (oldPost.equals(postID))
{
System.out.println("This has been alerted : ");
}
else
{
System.out.println("This is something new : ");
//set old post to new post - does not seem to work
SharedPreferences.Editor editor = getSharedPreferences("MyPrefs", MODE_PRIVATE).edit();
editor.clear();
editor.putString("newsId", "" + oldPost);
editor.commit();
}
}
希望这是一个明显的答案......在此先感谢。
答案 0 :(得分:0)
而不是
editor.putString("newsId", "" + oldPost);
这样做
editor.putString("newsId", "" + postID);
答案 1 :(得分:0)
首先,不要使用null,在""
中使用空字符串String oldPost = prefs.getString("newsId", null);
接下来editor.putString("newsId", "" + oldPost);
在这里插入一个oldPost postID
。其次,您不需要将字符串强制转换为"" + oldPost
的字符串,因为它具有相同的类型,并且如果您要执行强制转换,请将默认的String.format API更加清晰。此外,您不需要清除sharedPreference只需覆盖它。所以删除clear方法。如果您愿意,可以使用editor.remove(String key);