save arraylist in shared preference

后端 未结 5 1255
抹茶落季
抹茶落季 2020-12-06 15:32

I am storing values in ArrayList and pass it to using bundle to next Fragment, and there I set values to my TextView, till here it wor

5条回答
  •  情深已故
    2020-12-06 16:31

    You can use gson:

    To Save Preferences:

     public void save_User_To_Shared_Prefs(Context context, List users) {
            SharedPreferences settings;
            Editor editor;
    
            settings = context.getSharedPreferences(PREFS_NAME,
                    Context.MODE_PRIVATE);
            editor = settings.edit();
    
            Gson gson = new Gson();
            String jsonUsers = gson.toJson(users);
    
            editor.putString(USERS, jsonUsers);
    
            editor.commit();
        }
    

    To get Preferences:

    public ArrayList getUsers(Context context) {
            SharedPreferences settings;
            List users;
    
            settings = context.getSharedPreferences(PREFS_NAME,
                    Context.MODE_PRIVATE);
    
            if (settings.contains(USERS)) {
                String jsonUsers = settings.getString(USERS, null);
                Gson gson = new Gson();
                User[] userItems = gson.fromJson(jsonUsers,
                        User[].class);
    
                users = Arrays.asList(userItems);
                users= new ArrayList(users);
            } else
                return null;
    
            return (ArrayList) users;
        }
    

    To add user:

    public void addUser(Context context, User user) {
            List favorites = getUsers(context);
            if (users == null)
                users = new ArrayList();
            users.add(user);
            save_User_To_Shared_Prefs(context, users);
        }
    

提交回复
热议问题