<< Android-Note
配列をアプリ設定に保存する方法
SharedPreferenceを使うとアプリ設定をXML形式で簡単に保存できます。
しかし、プリファランスで保存できるデータの種類はintやStringなどのプリミティブ型に限り、配列そのものは記録できません。
そこで配列を文字列として保存するのにJSONArrayというJSON形式で配列を扱うクラスを使います。
まず保存の仕方はこうです。
prefs = PreferenceManager.getDefaultSharedPreferences(this); prefsEditor = prefs.edit(); JSONArray array = new JSONArray(); try { array.put("one"); array.put("two"); array.put("three"); prefsEditor.putString("ARRAY_KEY", array.toString()); prefsEditor.commit(); } catch (JSONException e) { e.printStackTrace(); }
JSONArrayは次のような文字列で記録されます。
["one","two","three"]
値の読み出し
値を記録したら、今度はそれを読みだしてみます。
コードは例えばこうします。
JSONArray array = new JSONArray( prefs.getString("ARRAY_KEY", new JSONArray().toString())); int arrayLength = array.length(); for(int i = 0; i < arrayLength; ++i){ try { Log.d("MainActivity", "値" + i + " = " + array.getString(i)); } catch (JSONException e) { e.printStackTrace(); } }
このように文字列からJSONArrayを再構築して1つ1つ要素を取り出せばOKです。
ここでは要素に文字列を保存していますが、もちろん文字列以外の数値や他の配列も含めることができます。
以上JSONArrayを使った配列の保存でした。
© Kaz