0

当用户单击一个按钮时,会显示一个新的 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;
        }
}

然后我编写了我的自定义适配器,它将专辑名称和艺术家名称与我的 ListView 行中的正确 TextView 相关联。

那么我可以声明一个 AlbumItem 的 ArrayList 并像这样填充它:

ArrayList<AlbumItem> arrayList;
arrayList.add(new AlbumItem ("Album's title", "Artist");

现在我有几个问题:

1)我走的路合适吗?我一直在学习填充这样的列表视图,并且我很喜欢使用这种技术(自定义项目类 + ArrayList + CustomAdapter),但我正在做一个音乐播放器,我想查询专辑列表并更新异步列表视图,以便 UI 不会被阻塞。我不知道是否可以按照我的方式将数据加载到 ArrayList 中。

2) 如何异步填充这个 ArrayList ?使用 LoaderManager/CursorLoader 或 Asyntask 或其他什么?(我的目标是 Android 4.0)

谢谢你的建议。

4

1 回答 1

0

CursorLoader 是一种加载列表的便捷方式,尤其是当您从数据库或其他本地数据源获取数据时。如果您的数据来自网络,使用 asynctask 获取数据并将其加载到列表适配器中可能会更容易。如果您熟悉其中之一,请使用它。

于 2012-06-13T21:39:45.627 回答