前提
androidについて質問します。
自分は今2次元配列をPreferencesに格納しようとしています。配列のままでは格納できないので以下の方法でjson形式にし、取り出すときに2次元配列に戻し、データを加工したいと思っています。ですが取り出したaでは1次元配列になってしまいます。1次元配列の定義をしていますが、それはarrをjsonに戻したときに1次元配列になっているからです。どのようにしたら2次元配列に戻すことができるのでしょうか
※pref.getString("test",null)には[["a","b","c"],["d","e","f"]]のjson文字列が格納しています。
実現したいこと
jsonと配列の相互変換をしたい
該当のソースコード
MainActivity
1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 ArrayList<String> b = new ArrayList<>(); 7 b.add("a"); 8 b.add("b"); 9 b.add("c"); 10 11 12 saveItems(b); 13 } 14 15 private void saveItems(ArrayList<String> items) { 16 ArrayList<String> a = new ArrayList<>(); 17 SharedPreferences pref = getSharedPreferences("a", MODE_PRIVATE); 18 String array = pref.getString("test",null); 19 if(!TextUtils.isEmpty(array)) { 20 // JSON -> List<String>に変換 21 try { 22 JSONArray arr = new JSONArray(array); 23 for (int i = 0; i < arr.length(); i++) { 24 a.add(arr.getString(i)); 25 } 26 27 } catch (JSONException e) { 28 } 29 } 30 System.out.println(a);
試したこと
以下の記事を参考にさせていただきました。
http://gettingsignals.com/?p=307
