如何将整数数组列表保存到共享首选项

时间:2016-12-11 00:58:38

标签: android arrays listview sharedpreferences

我一直在尝试将共享偏好设置中的整数数组列表保存几天,但无法弄清楚如何操作。

这是我尝试保存的数组列表

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您无法将任何数组或arraylists写入共享首选项。您可以做的最接近的是将整数写入逗号分隔的字符串,写入字符串,并在需要读取它时解析它。这仅适用于阵列大小相对较小的情况。如果它很大,您需要从SharedPreferences转移到另一种形式的存储,例如文件或数据库。