检索SharedPreferences值无效。我有什么想法我做错了吗?

时间:2016-05-10 04:22:20

标签: android sharedpreferences

这是我在一个活动中将值存储到SharedPreferences中的地方:

        sharedPref = context.getSharedPreferences("sharedPref", Context.MODE_PRIVATE);
        String firstPlace = new String("1");
        String secondPlace = new String("2");
        String thirdPlace = new String("3");

        editor = sharedPref.edit();

        editor.putString("first", firstPlace);
        editor.putString("second", secondPlace);
        editor.putString("third", thirdPlace);
        editor.commit();

尝试在另一个活动中检索它们。但是,检索似乎没有得到我输入的值,只是使用默认值(所以“第一名:”“第二名:”和“第三名:”最后在他们旁边加上'否' )。

SharedPreferences sharedPref = getSharedPreferences("sharedPref", MODE_PRIVATE);

    String firstPlace = sharedPref.getString("first", "no");
    String secondPlace = sharedPref.getString("second", "no");
    String thirdlace = sharedPref.getString("third", "no");

    highScore1.setText("1st Place: " + firstPlace);
    highScore2.setText("2nd Place: " + secondPlace);
    highScore3.setText("3rd Place: " + thirdlace);

3 个答案:

答案 0 :(得分:0)

您可以尝试直接放置值

    editor = sharedPref.edit();
    editor.putString("first", "1");
    editor.putString("second", "2");
    editor.putString("third", "3");

答案 1 :(得分:0)

您使用了单独的上下文。要使您的共享首选项可以访问整个应用程序,您需要默认的共享首选项。声明如下

   SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

在此之后,您可以像以前一样编辑和获取数据。

答案 2 :(得分:0)

请试试这个,

this.SharedPrefs = getSharedPreferences("MyPrefs", 0); SharedPreferences.Editor localEditor = this.SharedPrefs.edit(); localEditor.putString("first", firstPlace); localEditor.putString("second", secondPlace); localEditor.putString("third", thirdPlace); localEditor.commit(); finish();