当前位置 : 主页 > 手机开发 > android >

android – SharedPreferences只返回默认值

来源:互联网 收集:自由互联 发布时间:2021-06-11
因此,我使用SharedPreference存储数据,而不是创建数据库. 我的代码如下: SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); editor.putInt("favid"+id, 1); editor.commit(); Toast.makeText(getApplication
因此,我使用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();

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

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

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

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

有关getPrefernces方法,请参阅 docs:

Retrieve a SharedPreferences object for accessing preferences that are private to this activity.

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

网友评论