Android Media Store からクエリした曲のリストを保存しようとしていますが、複数の列 (曲名、トラック パス、再生時間など) を保存する方法がわかりません。
現在、HashMap と ArrayList を使用して曲名と期間をリスト ビューに表示していますが、クエリからより多くの情報を保存したいと考えています。ある種の多次元ベクトル/コンテナを取得する方法に関するヒントはありますか? JSON obj/arrays を使用してみましたが、値を格納するたびに最後の値しか取得できません...
while (c.moveToNext()) {
HashMap<String, String> temp = new HashMap<String, String>();
temp.put("Title", c.getString(c
.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)));
temp.put("Duration", Tools.stringOfTime(Long.parseLong(c.getString(c
.getColumnIndex(MediaStore.Audio.Media.DURATION)))));
list.add(temp);
JSON試行...基本的に、各クエリ行を1つのjsonオブジェクトに追加し、それらのオブジェクトをjson配列に入れ続けましたが、何らかの理由で、リストから最後の値しか取得できず、ハッシュマップアプローチは正常に機能しますが、2つしか保存できません田畑..
// object = new JSONObject();
// try {
// object.put(
// "Title",
// c.getString(c
// .getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME)));
// object.put("Data", c.getString(c
// .getColumnIndex(MediaStore.Audio.Media.DATA)));
// object.put("Artist", c.getString(c
// .getColumnIndex(MediaStore.Audio.Media.ARTIST)));
// object.put("Album", c.getString(c
// .getColumnIndex(MediaStore.Audio.Media.ALBUM)));
// object.put("Duration", c.getString(c
// .getColumnIndex(MediaStore.Audio.Media.DURATION)));
// jarray.put(object);
// } catch (JSONException e) {
// e.printStackTrace();
// }
//
// jlist.add(object);
// }
// try {
// tv.setText(object.getString("Title"));
// } catch (JSONException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// Log.d("SongsActivity", "Couldn't print json object");
// }