SharedPreferences仅返回默认值

Sid*_*mit 3 android android-intent sharedpreferences

因此,我不是创建数据库,而是使用存储数据SharedPreference.

我的代码如下:

   SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
        editor.putInt("favid"+id, 1);
        editor.commit();
        Toast.makeText(getApplicationContext(), "Select as favorite", Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)

现在我想检索那些数据,所以我在其他活动中使用了以下代码:

   strFav = new ArrayList<Integer>();

    if(strFav.size()>0)
        strFav.clear();
    SharedPreferences prefs = getPreferences(MODE_PRIVATE); 
    for (int i = 1; i < 19; i++) {
        int favid = prefs.getInt("favid"+i, -1);
        if (favid != -1) 
        {
          strFav.add(i);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在数据检索时,我得到的所有价值都是-1.

任何人都可以帮助我为什么会这样吗?我已经提交了许多条目为1,但我仍然得到-1了所有这些条目的结果.

Jin*_*n35 6

查看有关方法的文档getPrefernces:

检索SharedPreferences对象以访问此活动专用的首选项.

因此,如果要在活动之间共享首选项,则应使用getSharedPreferences指定名称.