3

在我的应用程序中,我在基本适配器中使用列表视图。

当我单击项目时,它的 id 以共享首选项字符串数组格式存储。如何像这样以字符串数组格式[1,2,5,6]保存多个项目ID

4

3 回答 3

10

您也可以尝试使用JSONArrayJSON light-weight,您可以创建一个JSONArray并将其作为字符串写入 SharedPreference。

来写,

       SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(this);
        JSONArray jsonArray = new JSONArray();
        jsonArray.put(1);
        jsonArray.put(2);
        Editor editor = prefs.edit();
        editor.putString("key", jsonArray.toString());
        System.out.println(jsonArray.toString());
        editor.commit();

读书,

        try {
            JSONArray jsonArray2 = new JSONArray(prefs.getString("key", "[]"));
            for (int i = 0; i < jsonArray2.length(); i++) {
                 Log.d("your JSON Array", jsonArray2.getInt(i)+"");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
于 2012-04-20T07:02:49.000 回答
4

如果您使用的是 API 11,那么可以使用putStringSet. 否则,您可以将字符串数组转换为@hotverispicy 提到的单个字符串,或者使用 SQLite 数据库

于 2012-04-20T06:55:46.257 回答
3

,您可以通过(逗号)分隔符将其保存为字符串,并在获取时仅使用split()

string toPut="";

toPut += "listItem,";

设置为放入你的SharePreference和 commit()

要在数组中获得相同的结果: get prefString fromSharePreference

String[] fetchArray= prefString.split(",");
于 2012-04-20T06:54:56.117 回答