Java 在Android中循环URI列表的最佳方式是什么?
我正在用Android创建一个音乐播放器。要创建一个Song对象,我必须使用ContentResolver中的不同URI重复查询各种数据。下面是一个例子:Java 在Android中循环URI列表的最佳方式是什么?,java,android,android-studio,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
//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(..)在数组中保留所有属性的字符串表示形式后,将字符串转换为Uri,如[Title、Artist、Album,…]。问题:并非所有数据类型都是字符串,因此将返回的值放在一个集合中很麻烦。此外,当将其传递给Song构造函数时,我可能必须按索引传递每个元素(从而使我的代码依赖于字符串数组的索引)
我知道我可能想得太多了,但我想知道是否有更好的方法 所以您正在使用内容提供商。。。然后,如果你想在ListView中显示游标,就不要使用歌曲模型,而是使用LoadersAPI+CursorAdapter…我不一定要在ListView中显示所有列,但我会看看你说了什么。这是我第一个认真的Android项目,所以我对框架的工作原理还是有点生疏。