Webサービスにヒットし、その結果をListViewに表示するタスクを起動するListActivityがあります。結果のそれぞれには、画像IDが添付されています。ListViewの画像検索結果
画面に表示される行の画像ID(firstVisiblePosition()〜lastVisiblePosition())を取得し、別のWebサービスを照会するタスクを起動してこれらの項目の画像を表示するメソッドを作成しました。リストのスクロール状態がSCROLL_STATE_IDLEになったときにこのメソッドを呼び出します。これにより、ユーザーはスクロールできるようになり、表示行のイメージを取得するタスクはスクロールが停止するまで実行されず、オフスクリーン行のイメージをルックアップすることができなくなります。
私の問題は、最初に結果がListViewに表示されたときに、私のメソッドを呼び出して照会する画像IDを調べるという方法が見つからないということです。どうやら、setAdapterを呼び出した直後にこのメソッドを呼び出すことはできません(ListViewの作業の一部が非同期で行われるため、私は推測しています)。私は複数のアダプタを使用しています(理由はこの記事には関係ありません)ので、IDを取得するためにメソッドを呼び出す前にリストアイテムが表示されるのを待つ良い方法が必要です。
アイデア?あなたは、アダプタ上のアダプタを設定したり、notifyDatasetChanged()
呼ばれた後は
恐ろしいです。ありがとうございました。 – Andrew
興味があれば、私はあなたが今やっているのと同じことをしました。私が望むほど正確ではない「SCROLL_STATE_IDLE」が見つかりました。私はこれを以前の回答としてここに掲載しました(http://stackoverflow.com/questions/6358428/implementation-of-onscrolllistener-to-detect-the-end-of-scrolling-in-a-listview/6358818#6358818 )。 – dmon