我嘗試存儲的,我從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