2017-01-31 2 views
-3

Ich möchte mehr als ein Integer-Werte in Shared Preference speichern. Ist das möglich?Wie SharedPreferences verwenden, um mehr als nur Integer-Werte zu speichern?

+0

Ja Sie int Werte in Arraylist und speichern Arraylist in sp hinzufügen können. – Piyush

+0

mögliches Duplikat von http://stackoverflow.com/questions/9054193/how-to-use-sharedpreferences-to-save-more-than-one-values ​​ – rafsanahmad007

+0

Mögliches Duplikat von [Wie Verwenden von SharedPreferences, um mehr als nur Werte zu speichern ?] (http://stackoverflow.com/questions/9054193/how-to-use-sharedpreferences-to-save-more-than-one-values) –

Antwort

0

Zum Speichern in SharedPreferences:

public void putListInt(String key, ArrayList<Integer> intList) { 
    checkForNullKey(key); 
    Integer[] myIntList = intList.toArray(new Integer[intList.size()]); 
    preferences.edit().putString(key, TextUtils.join("‚‗‚", myIntList)).apply(); 
} 

Für von SharedPreferences Abrufen:

public ArrayList<Integer> getListInt(String key) { 
    String[] myList = TextUtils.split(preferences.getString(key, ""), "‚‗‚"); 
    ArrayList<String> arrayToList = new ArrayList<String>(Arrays.asList(myList)); 
    ArrayList<Integer> newList = new ArrayList<Integer>(); 

    for (String item : arrayToList) 
     newList.add(Integer.parseInt(item)); 

    return newList; 
} 
0

Sie können Set (Form Java Collection) verwenden, um mehrere Integer-Werte in den gemeinsamen Einstellungen zu speichern.

+0

Es gibt keine Methode zu putintSet ("key", set); Nicht für mich arbeiten. Ich verstehe die Logik des Programmierers nicht, weil Sägezahn gandum r jawab channa hota hy. –

0

die Gson Verwenden Array zum Speichern in SharedPreferences

Für Wert speichert.

int[] list = new int[10]; 
String string=new Gson().toJson(list); 
prefs.edit().putString("data", string).apply(); 

Zum Abrufen von Wert.

String data=prefs.getString("data",null); 
int [] list=new Gson().fromJson(data,int[].class); 
Verwandte Themen