0

ユーザーがボタンをクリックすると、新しい ListFragment が表示されます。このフラグメントには、関連付けられたアーティスト名を含むアルバムのリストが含まれます。

アルバムのタイトルと対応するアーティスト名AlbumItem (String name, String artist)を使用して、独自のクラスを作成しました。nameartist

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 + カスタム アダプター) を使用することに非常に慣れていますが、音楽プレーヤーを実行していて、アルバムのリストを照会して更新したいと考えています。 UI がブロックされないようにリストビューを非同期に。私のやり方でArrayListにデータをロードすることでそれが可能かどうかはわかりません。

2) この ArrayList を非同期的に埋める方法は? LoaderManager/CursorLoader または Asyntask または何か他のもので? (Android 4.0をターゲットにしています)

アドバイスありがとうございます。

4

1 に答える 1

0

CursorLoader は、特にデータベースまたは別のローカル データ ソースからデータを取得する場合に、リストを読み込む便利な方法です。ネットワークからデータを取得する場合は、asynctask を使用してデータを取得し、リスト アダプターにロードする方が簡単な場合があります。これらのいずれかに精通している場合は、それを使用してください。

于 2012-06-13T21:39:45.627 に答える