我一直在尝试将共享偏好设置中的整数数组列表保存几天,但无法弄清楚如何操作。
这是我尝试保存的数组列表
////list that contains checked routes///
ArrayList<Integer> checkedRoutePosition = new ArrayList<>();
以及数据如何获取其中的值
int listViewItemPosition = ((Activity) getContext()).getIntent().getIntExtra("listViewItemPosition",0);
checkedRoutePosition.add(listViewItemPosition);
在您单击后退按钮后的另一个活动中,将启动一个新的意图,将我带到此活动。意图传递了我需要保存到数组的listViewItemPosition值。
上面的代码行在我的自定义适配器的getView方法中,用于listview。保存后我想将它们与我的getView中的位置进行比较。在值相等的情况下,我想设置一个特定的图像。这段代码是正确的方法吗?
for(int i=0; i<checkedRoutePosition.size(); i++)
if(position == checkedRoutePosition.get(i)) {
checkImageView.setImageResource(checkImageResourceId);
}
感谢您的帮助!
答案 0 :(得分:1)
您无法将任何数组或arraylists写入共享首选项。您可以做的最接近的是将整数写入逗号分隔的字符串,写入字符串,并在需要读取它时解析它。这仅适用于阵列大小相对较小的情况。如果它很大,您需要从SharedPreferences转移到另一种形式的存储,例如文件或数据库。