データベースに保存されている画像の 100 uri を持つアプリケーションを作成したいと考えています。今、リストビューに表示するためだけにデータベースからデータ全体を取得しないようにしたいと考えています。リストの現在のビュー画面までのデータのみを取得したいので、次のデータ項目よりもリストをスクロールして、リストビューでデータを表示するためにアプリケーションが遅くならないようにします。
質問する
16269 次
3 に答える
3
リストビューが長くてもスクロールが遅くなることはありません。100 個すべての uri を一度に取得してアダプターに入力するだけです。それは正常に動作します...
于 2012-05-11T14:42:49.350 に答える
2
以下にスクロールリスナーがあります。
class EndlessScrollListener implements OnScrollListener{
private static final String TAG = "CacheToDBActivity.EndlessScrollListener";
private boolean loading = true;
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
if (!(loading) && (totalItemCount - visibleItemCount) <= (firstVisibleItem)) {
Log.d(TAG, "Load Next Page!");
loading = true;
}
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {}
public boolean isLoading() {
return loading;
}
public void setLoading(boolean loading) {
this.loading = loading;
}
}
EndlessScrollListenerをインスタンス化し、リストビューのonScrollListenerを次のように設定できます。
yourListView.setOnScrollListener(endlessScrollListener);
そして、endlessscrollListenerのLog.d(TAG, "Load Next Page!");
行の上で、データベースからアイテムをフェッチし、それらをアダプターに追加できます。
呼び出した後notifyDataSetChanged();
、アイテムがリストに表示されます
お役に立てれば
于 2012-05-11T14:50:13.863 に答える
1
ページングを実装するには、 cwac エンドレス アダプターを確認してください。
于 2012-05-11T14:42:43.903 に答える