在Android中循环URI列表的最佳方法是什么?

时间:2016-03-04 05:16:56

标签: java android android-studio

我在Android中创建了一个音乐播放器。要创建Song对象,我必须使用ContentResolver中的不同URI重复查询各种数据。这是一个例子:

  //get columns
  int titleColumn = musicCursor.getColumnIndex
    (android.provider.MediaStore.Audio.Media.TITLE);
  int idColumn = musicCursor.getColumnIndex
    (android.provider.MediaStore.Audio.Media._ID);
  int artistColumn = musicCursor.getColumnIndex
    (android.provider.MediaStore.Audio.Media.ARTIST);
  //add songs to list
  do {
    long thisId = musicCursor.getLong(idColumn);
    String thisTitle = musicCursor.getString(titleColumn);
    String thisArtist = musicCursor.getString(artistColumn);
    songList.add(new Song(thisId, thisTitle, thisArtist));
  }

现在,如果我将专辑,流派和其他信息添加到Song对象中,您可以想象这看起来不会很漂亮。这是我考虑的一个选项,但我想知道是否有更好的方法:

使用Uri.parse(..)在保持数组中所有属性的字符串表示后将字符串转换为Uris,例如[Title,Artist,Album,..]。问题:并非所有数据类型都是字符串,因此将返回的值放在一个Collection中会很麻烦。此外,当它传递给Song构造函数时,我可能必须通过索引传递每个元素(从而使我的代码依赖于String数组的索引)。

我知道我可能会过度思考它,但我想知道是否有更好的方法来做到这一点。

0 个答案:

没有答案
相关问题