Sto cercando ore per scoprire perché il salvataggio dell'elenco booleano nelle preferenze condivise non funziona.Salva lista array nelle preferenze condivise
I metodi non salvano o caricano qualcosa ... il metodo di carico restituisce sempre i valori alternativi: quindi list_size come 0 e booleane come false.
Prima di tutto creare l'elenco nel mio MainActivity e chiamare il metodo Save:
SaveLoadTraining sLoad = new SaveLoadTraining();
ArrayList<Boolean> listBoolTrain = new ArrayList<Boolean>();
listBoolTrain.add(true);
listBoolTrain.add(true);
sLoad.saveArray(listBoolTrain);
La sottoclasse SaveLoadTraining assomiglia a questo:
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;
}
}
io non riesco a capire cosa non va ...
Forse gestisco il contesto in modo errato? mi basta chiamare questo metodo per ottenere il contesto del MainActivity:
...
mContext = this;
...
public static Context getMContext(){
return mContext;
}
'Non riesco a capire che cosa sta andando male ...' - non possiamo perché non ci avete detto;) – Simon
ehm, hehe;) I metodi non sono il risparmio o il caricamento di qualcosa .. . il metodo di carico restituisce sempre i valori alternativi: quindi list_size come 0 e booleane come false – Bolic
Ho appena copiato il codice e funziona per me. Si prega di mostrare dove si sta caricando e salvandolo o come si sta testando. –