如何将多维数组放入android中的共享首选项中

时间:2014-04-23 08:30:16

标签: android multidimensional-array sharedpreferences

基本上我的数组采用这种格式,我希望将其存储在共享首选项中 但不知道有人会给我什么想法或代码

我正在使用动态内容

String[][] my_date;
my_date = new String[][] {
                {"14","26"},
                {"12","16","24","27"},
                {"17"},
                {"8","13","18"},
                {"14"},
                {},
                {"29"},
                {"15","18"},
                {},
                {"2","3","6","8","23"},
                {"4","6","24"},
                {}
        };

3 个答案:

答案 0 :(得分:0)

您可以在首选项中使用putStringSet

example preferences.putStringSet(“key”,Set);

答案 1 :(得分:0)

我有这个课程我做了

public class SavedPreference 
{
    static final String PREF_USER_NAME = "username";
    static final String PREF_PASS = "password";

    static SharedPreferences getSharedPreferences(Context ct)
    {
        return PreferenceManager.getDefaultSharedPreferences(ct);
    }

    public static void setUserName(Context ctx, String userName) 
    {
        Editor editor = getSharedPreferences(ctx).edit();
        editor.putString(PREF_USER_NAME, userName);
        editor.commit();
    }

    public static void eraseSavedPreference(Context ctx)
    {
        Editor editor = getSharedPreferences(ctx).edit();
        editor.clear();
        editor.commit();
    }

    public static String getUserName(Context ctx)
    {
        return getSharedPreferences(ctx).getString(PREF_USER_NAME, "");
    }
}

在你的案例中:

在setUserName中,您可以更改您添加2d数组的代码并迭代它们并使用putString添加它们

与获取它们相同

答案 2 :(得分:0)

您可以使用ObjectSerializer。 [https://github.com/apache/pig/blob/89c2e8e76c68d0d0abe6a36b4e08ddc56979796f/src/org/apache/pig/impl/util/ObjectSerializer.java]这个很棒的类允许你简单地序列化和反序列化每种对象,所以你可以简单地将它们保存为共享的字符串。 例如,一旦你得到了sharedPrefs的实例:

_sharedPrefs.edit().putString( YOUR_OBJECT_KEY, ObjectSerializer.serialize(object) ).commit();

要从共享中取出您的对象,您可以调用

_yourObject = (Object) ObjectSerializer.deserialize(_sharedPrefs.getString( YOUR_OBJECT_KEY, null));