1

データベースに保存されている画像の 100 uri を持つアプリケーションを作成したいと考えています。今、リストビューに表示するためだけにデータベースからデータ全体を取得しないようにしたいと考えています。リストの現在のビュー画面までのデータのみを取得したいので、次のデータ項目よりもリストをスクロールして、リストビューでデータを表示するためにアプリケーションが遅くならないようにします。

4

3 に答える 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 に答える