我试图存储从 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 数组中,但由于某种原因,我只能从列表中获取最后一个值,因为 hashmap 方法工作正常但只能存储 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");
// }