我尝试存储的,我从Android的媒体存储查询的歌曲列表,但我不知道如何保存多列(即歌曲名称,轨道路径,持续时间等)存储查询值并在活动之间传递它们的提示?
我目前使用HashMap和ArrayList在列表视图中显示歌曲名称和持续时间,但我想从我的查询中存储更多信息。有关如何获得某种多维矢量/容器的任何提示?我试着使用JSON OBJ /阵列,但我每次我存放其中的值,我只能拿到最后一个出去......
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");
// }
由于所有数据已经存在,使用游标会出现什么问题?如果您在其他活动中需要它,请再次运行查询。 – Barak
谢谢我想要实际做什么。我想让我的用户点击某些查询结果,然后我会用它们来制作一个播放列表。 – user772401