とにかく、List変数をAndroid携帯の内部または外部メモリに保存できますか?プリミティブデータを保存できることはわかっていますが、これについてはよくわかりません。
前もって感謝します。
はい、正確にはプリミティブしか保存できないため、次のようになります。
List<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("three");
StringBuilder csvList = new StringBuilder();
for(String s : list){
csvList.append(s);
csvList.append(",");
}
sharedPreferencesEditor.put("myList", csvList.toString());
次に、list
もう一度作成するには、次のようにします。
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[i]);
}
この「シリアル化」を独自のクラスにカプセル化して、リストをラップし、整理整頓することができます。list
また、に変換することもできますJSON
。
プログラムに文字列値を保存/取得/削除する場合List
は、よりも優れていArray
ます。以下にその使い方を紹介します。
// 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