Enregistrer la liste de tableaux dans les préférences partagées
je suis à la recherche pendant des heures pour savoir pourquoi économiser boolean liste partagée de préférences n'est pas de travail.
Les méthodes ne sont pas la sauvegarde ou le chargement de quelque chose... la loadmethod renvoie toujours l'alternative des valeurs: si list_size à 0 et le booléen false.
Tout d'abord, je crée une liste dans mon MainActivity et appeler la Méthode save:
SaveLoadTraining sLoad = new SaveLoadTraining();
ArrayList<Boolean> listBoolTrain = new ArrayList<Boolean>();
listBoolTrain.add(true);
listBoolTrain.add(true);
sLoad.saveArray(listBoolTrain);
La sous-classe SaveLoadTraining ressemble à ceci:
package de.sebspr.app08.halle;
import java.util.ArrayList;
import android.content.Context;
import android.content.SharedPreferences;
import de.sebspr.app08.MainActivity;
public class SaveLoadTraining {
private Context context;
public static final String PREFS_NAME = "ListFile";
private ArrayList<Boolean> list;
public SaveLoadTraining(){
this.context = MainActivity.getMContext();
}
public void saveArray(ArrayList<Boolean> list){
this.list = list;
SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
int size = list.size();
editor.putInt("list_size", size);
for (int i = 0; i < size; i++) {
editor.remove("list_"+i);
}
for (int i = 0; i < size; i++) {
editor.putBoolean("list_"+i, list.get(i));
}
editor.commit();
}
public ArrayList<Boolean> loadArray(){
SharedPreferences file = context.getSharedPreferences(PREFS_NAME, 0);
list = new ArrayList<Boolean>();
int size = file.getInt("list_size", 0);
for(int i = 0; i<size;i++){
boolean bool = file.getBoolean("list_"+i, false);
list.add(bool);
}
return list;
}
}
Je ne peux pas comprendre ce qui ne va pas...
Peut-être que je me charge du contexte sur un mauvais chemin?
Je viens d'appeler cette méthode pour obtenir le cadre de la MainActivity:
...
mContext = this;
...
public static Context getMContext(){
return mContext;
}
I can not figure out what is going wrong...
- nous ne pouvons pas parce que vous n'avez pas dit à nous 😉euh, hehe 😉 Les méthodes ne sont pas la sauvegarde ou le chargement de quelque chose... la loadmethod renvoie toujours l'alternative des valeurs: si list_size que des 0 et des booléens comme faux
J'ai juste copié ton code et il fonctionne pour moi. S'il vous plaît montrer où vous êtes le chargement et l'enregistrement ou la façon dont vous souhaitez tester.
je viens de comprendre le problème. Le code ci-dessus que j'ai posté est la façon dont vous avez dit... le mistak est somewhereelse...
OriginalL'auteur Bolic | 2013-07-27
Vous devez vous connecter pour publier un commentaire.
Juste apporter les modifications suivantes dans votre code, et cela devrait fonctionner.
Prendre
SharedPrefrences mSharedPrefs
que votre variable de classe.Faire 2 différentes Méthodes pour enlever et ajouter des valeurs Partagées Préférences et de le faire en deux commits au lieu de 1 Commit.
1ère Méthode de Suppression de la Liste
2ème Méthode pour l'Ajout de la Liste
J'espère que cela va fonctionner.
Pas de Problème de contrainte 🙂
je veux enregistrer/store List<String> de Partagé préférences comment puis-je le faire ? je dnt souhaitez enregistrer les chaînes de la liste je veux stocker les arrayList dans SharedPreferences
Veuillez consulter ce lien stackoverflow.com/questions/7057845/...
bdw pour récupérer les valeurs d'une autre activité & permettez-moi de vérifier si elle fonctionne ou pas 😛
OriginalL'auteur Salman Khakwani
OriginalL'auteur Vaishali Sutariya