开发者

How do I add an int array into shared preferences?

开发者 https://www.devze.com 2023-03-30 18:06 出处:网络
I am trying to save an int array into the shared preferences. int myInts[]={1,2,3,4}; SharedPreferences prefs = getSharedPreferences(

I am trying to save an int array into the shared preferences.

int myInts[]={1,2,3,4};
SharedPreferences prefs = getSharedPreferences(
                        "Settings", 0);
                SharedPreferences.Editor 开发者_如何转开发editor = prefs
                        .edit();
                editor.putInt("savedints", myInts);

Since the putInt method does not accept int arrays, I was wondering if anyone knew another way to do this. Thanks


Consider JSON. JSON is well integrated into Android and you can serialize any complex type of java object. In your case the following code would be suited well.

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


you can add only primitive values to sharedpreference ......

refer this doc:

http://developer.android.com/reference/android/content/SharedPreferences.html


You can serialize an array to String using TextUtils.join(";", myInts) and the deserialize it back using something like TextUtils. SimpleStringSplitter or implement your own TextUtils.StringSplitter.


If your integers are unique, perhaps you can use putStringSet (see docs). Otherwise you have to resort to serializing / formatting your integer array as String, as suggested by other answers.

0

精彩评论

暂无评论...
验证码 换一张
取 消