如何在android中把多维数组放在共享偏好中



基本上我的数组是这种格式的,我想把它存储在共享的首选项中但不知道有人会如何给我想法或编码

我正在使用动态内容

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"},
                {}
        };

您可以使用ObjectSerializer。[https://github.com/apache/pig/blob/89c2e8e76c68d0d0abe6a36b4e08ddc56979796f/src/org/apache/pig/impl/util/ObjectSerializer.java]这个很棒的类允许您轻松地将每种对象串行化为String,然后您可以将其保存到任何您喜欢的地方。例如,已经创建了一个sharedPreferences实例:

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

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

object = (Object) ObjectSerializer.deserialize(sharedPreferences.getString( YOUR_OBJECT_KEY, null));

请注意,如果您关心性能(需要存储大量数据/重数据,例如图像),则共享偏好和上述方法可能都不是最佳

您可以在首选项中使用putStringSet

示例preferences.putStringSet("key",Set);

我有这个类,我做了

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添加它们

与获取相同

相关内容

  • 没有找到相关文章

最新更新