Cómo guardar los datos de arrayList en SharedPreferences?

Estoy ahorrando el tamaño y los datos del arraylist en sharedPreference. Cuando estoy recuperando el tamaño del arraylist de sharedpreference que da el tamaño exacto cuál nunca el ahorro anterior del tamaño. Pero aquí estoy fallando en guardar datos de Arraylist. Cuando estoy recuperando los datos del arraylist él siempre Dando el último artículo de arraylist.

Aquí está mi código para guardar el tamaño y los datos de Arraylist:

ArrayList<Items> mArrayList1 = new ArrayList<Items>(); if(mArrayList1 == 0){ mStoreItem.setItem(id); mArrayList1.add(mStoreItem); int size = mArrayList1.size(); System.out.println("array list size : " + size); MyPreferences.savePreferences(getActivity(), "arraylist_size", Integer.toString(size)); for (int i = 0; i < mArrayList1.size(); i++) { String id = mArrayList1.get(i) .getItem(); MyPreferences.savePreferences(getActivity(), "id", id); } } else if(mArrayList1 > 0){ mStoreItem.setItem(id); mArrayList1.add(mStoreItem); int size = mArrayList1.size(); System.out.println("arrayList size : " + size); MyPreferences.savePreferences(getActivity(), "arraylist_size", Integer.toString(size)); for (int i = 0; i < mArrayList1.size(); i++) { String id = mArrayList1.get(i) .getItem(); MyPreferences.savePreferences(getActivity(), "id", id); } } 

Aquí estoy recuperando mis artículos de ArrayList:

  String getListSize = MyPreferences.savePreferences(getActivity(), "arraylist_size"); System.out.println("arrayList size : " + getListSize); if (!getListSize.equals("")) { int listSize = Integer.parseInt(getListSize); if (listSize > 0) { for (int i = 0; i < listSize; i++) { String getListitems = MyPreferences .getPreferences(getActivity(), "id"); System.out.Println("list items : "+ getListItems); } } } 

Este es mi código lo malo en mi código ¿cómo puedo almacenar los arraylistitems en sharedpreference cualquiera por favor guíame …

prueba esto.

 //Set the values Set<String> set = new HashSet<String>(); set.addAll(mArrayList1); scoreEditor.putStringSet("key", set); scoreEditor.commit(); //Retrieve the values Set<String> set = new HashSet<String>(); set = myScores.getStringSet("key", null); 

Esta pregunta ya respondió debajo de hilo., Guardar ArrayList a SharedPreferences

 public void addTask(Task t) { if (null == currentTasks) { currentTasks = new ArrayList<task>(); } currentTasks.add(t); //save the task list to preference SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE); Editor editor = prefs.edit(); try { editor.putString(TASKS, ObjectSerializer.serialize(currentTasks)); } catch (IOException e) { e.printStackTrace(); } editor.commit(); } 

 public void onCreate() { super.onCreate(); if (null == currentTasks) { currentTasks = new ArrayList<task>(); } // load tasks from preference SharedPreferences prefs = getSharedPreferences(SHARED_PREFS_FILE, Context.MODE_PRIVATE); try { currentTasks = (ArrayList<task>) ObjectSerializer.deserialize(prefs.getString(TASKS, ObjectSerializer.serialize(new ArrayList<task>()))); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } 

Aquí u cambia la clase de tarea como itemclass.

  • Android SharedPreferences sin guardar
  • Cómo guardar un paquete completo en SharedPreferences
  • Cómo hacer que la aplicación vaya a otra página si no se ejecuta por primera vez
  • ArrayList <CustomClass> en SharedPreferences
  • Cómo analizar JSON analizado para uso sin conexión
  • SharedPreferences lee valores antiguos
  • ¿Cómo obtengo las preferencias para trabajar en Android?
  • ¿Contexto de la aplicación para SharedPreferences?
  • Cómo Android SharedPreferences guarda / almacena un objeto
  • SharedPreference Cambios no reflejados en mi servicio de fondo de pantalla
  • Loader onLoadFinished () no se llama
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.