如何将int数组添加到共享首选项中?

Sea*_*ean 4 arrays android

我试图将一个int数组保存到共享首选项中.

int myInts[]={1,2,3,4};
SharedPreferences prefs = getSharedPreferences(
                        "Settings", 0);
                SharedPreferences.Editor editor = prefs
                        .edit();
                editor.putInt("savedints", myInts);
Run Code Online (Sandbox Code Playgroud)

由于putInt方法不接受int数组,我想知道是否有人知道另一种方法.谢谢

AZ1*_*Z13 11

考虑JSON.JSON很好地集成到Android中,您可以序列化任何复杂类型的Java对象.在您的情况下,以下代码将很适合.

// write
    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
    JSONArray arr = new JSONArray();
    arr.put(12);
    arr.put(-6);
    prefs.edit().putString("key", arr.toString());
    prefs.edit().commit();
    // read
    try {
        arr = new JSONArray(prefs.getString("key", "[]"));
        arr.getInt(1); // -6
    } catch (JSONException e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)