因此,我使用SharedPreference存储数据,而不是创建数据库. 我的代码如下: SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit(); editor.putInt("favid"+id, 1); editor.commit(); Toast.makeText(getApplication
我的代码如下:
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
.