因此,我不是创建数据库,而是使用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
个结果。
答案 0 :(得分:6)
请参阅docs关于getPrefernces
方法:
检索SharedPreferences对象,以访问此活动专用的偏好。
因此,如果您想在活动之间共享偏好,则应使用具有指定名称的getSharedPreferences
。
答案 1 :(得分:1)
您是否在一个应用的两个不同活动中使用共享偏好设置?
还尝试指定首选项名称,或者使用某个管理器来处理所有首选项,所有这些都解释为here
答案 2 :(得分:0)
editor.putInt("favid"+id, 1);
id是什么等于0? 在这里,你从1开始阅读
for (int i = 1; i < 19; i++) {