web-dev-qa-db-ja.com

Android保存リスト<String>

とにかく、Androidフォンの内部メモリまたは外部メモリにリスト変数を保存できますか?プリミティブデータを保存できることはわかっていますが、これについてはわかりません。

前もって感謝します。

11
Luke Taylor

はい、まさにあなたはプリミティブしか保存できないので、次のようなことができます:

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());

次に、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);     
}

この「シリアライズ」を独自のクラスにカプセル化して、リストをラップし、見栄えよく整理することができます。また、listJSONに変換することもできます。

23
Blundell

プログラムで一部の文字列値を格納/取得/削除する場合は、ListArrayよりも優れています。以下、その使い方を紹介します。

 // 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
0
Pir Fahim Shah