当用户点击某个按钮时,会显示一个新的ListFragment。此片段将包含相关列表及其关联的艺术家姓名。
我创建了自己的课程AlbumItem (String name, String artist)
,其中name
是相册的标题,artist
是相应的艺术家名称:
public class AlbumItem {
private String AlbumName;
private String AlbumArtist;
public AlbumItem(){
}
public AlbumItem(String name, String artist){
this.AlbumName = name;
this.AlbumArtist = artist;
}
public String getAlbumName() {
return AlbumName;
}
public void setAlbumName(String AlbumName) {
this.AlbumName = AlbumName;
}
public String getAlbumArtist() {
return AlbumArtist;
}
public void setAlbumArtist(String AlbumArtist) {
this.AlbumArtist = AlbumArtist;
}
}
然后我编写了自定义适配器,它将Album的名称和Artist的名称与ListView行中正确的TextView相关联。
那么我可以声明一个AlbumItem的ArrayList并填充它:
ArrayList<AlbumItem> arrayList;
arrayList.add(new AlbumItem ("Album's title", "Artist");
现在我几乎没有问题:
1)我会采取适当的方式吗?我总是学会填写这样的列表视图,我很习惯使用这种技术(Custom Item class + ArrayList + CustomAdapter),但我正在做一个音乐播放器,我想查询专辑列表并更新listview异步,以便不阻止UI。我不知道是否可以通过像我一样的方式在ArrayList中加载数据来实现它。
2)如何异步填充这个ArrayList?使用LoaderManager / CursorLoader或Asyntask或其他什么? (我的目标是Android 4.0)
感谢您的建议。
答案 0 :(得分:0)
CursorLoader是一种加载列表的便捷方式,尤其是从数据库或其他本地数据源获取数据时。如果您的数据来自网络,则可能更容易使用asynctask获取数据并将其加载到列表适配器中。如果您熟悉其中之一,请使用它。