Android共享首选项未更新

时间:2017-03-27 16:53:42

标签: java android sharedpreferences

我试图将新值写入共享首选项并且似乎无法正常工作,我是否遗漏了某些内容。

// 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();
                }
            }

希望这是一个明显的答案......在此先感谢。

2 个答案:

答案 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);

单独删除密钥