Czy mimo to mogę zapisać zmienną listy w wewnętrznej lub zewnętrznej pamięci telefonu urządzenia Android? Wiem, że mogę zapisać prymitywne dane, ale nie jestem pewien na ten temat.Zapisz listę Androida <String>
Z góry dziękuję.
Czy mimo to mogę zapisać zmienną listy w wewnętrznej lub zewnętrznej pamięci telefonu urządzenia Android? Wiem, że mogę zapisać prymitywne dane, ale nie jestem pewien na ten temat.Zapisz listę Androida <String>
Z góry dziękuję.
Tak dokładnie można zapisać tylko prymitywy więc można coś takiego:
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
StringBuilder csvList = new StringBuilder();
for(String s : list){
csvList.append(s);
csvList.append(",");
}
sharedPreferencesEditor.put("myList", csvList.toString());
Następnie stworzyć swój list
znowu byś:
String csvList = sharedPreferences.getString("myList");
String[] items = csvList.split(",");
List<String list = new ArrayList<String>();
for(int i=0; i < items.length; i++){
list.add(items);
}
Można by ująć to „szeregowania” do swojej własna klasa owija listę, aby była przyjemna i uporządkowana. Możesz także spojrzeć na konwersję swojego list
do JSON
.
Upewnij się, że OP zwraca większą uwagę, jeśli jego elementy listy zawierają przecinki. Preferuję metodę JSON najlepszą. To takie proste. – Samuel
Gson jest najłatwiejszy: gson.toJson (OBJECT) jest zawsze tym, co robię. – Codeversed
Jeśli chcesz zapisać/pobrać/usunąć pewną wartość ciągu w swoim programie, wówczas List
jest lepsza niż Array
. Tutaj poniżej pokażę ci, jak z niego korzystać.
// Declaring List Variable
List<String> Mylist = new ArrayList<String>();
// Adding item to List
Mylist.add(list.size(), "MyStringValue"); //this will add string at the next index
// Removing element form list
Mylist.remove(list.size()-1); //this will remove the top most element from List
Jaką metodę próbujesz użyć, aby ją zapisać? –
Użyj SQLite :) lekki db – iNan
http://stackoverflow.com/questions/3876680/is-it-possible-to-add-an-array- or-object-to-sharedpreferences-on-android –