2

アプリで Virgil Dobjanschis の Designpattern に従うようにしています。これまでのところすべて問題ありません。ContentProvider、IntentService を ListView と組み合わせることができます。

さらに、SwipeRefreshLayout を使用して、ユーザーが下にスワイプして、REST サービスから新しいデータを手動でロード (およびローカル DB に保存) できるようにします。

しかし、ユーザーが上にスワイプして、REST サービスから古いデータをロードできるようにしたいと考えています。私はこの点に行き詰まりました: LoaderManager で ListView を使用して上にスワイプしてロードする方法は?

onLoadFinished()カーソルからの結果をチェックして、メソッドでこれを行うことは可能ですか? または SwipeRefreshLayout を使用して Swipeup と SwipeDown の両方のイベントをリッスンしますか? 今のところ、スワイプダウンイベントを聞くことしかできないことがわかりました。

4

2 に答える 2

1

あなたが望むのは、おそらく「無限」/「遅延ロード」スクロールリストと呼ばれるものです。ユーザーがリストの最後に到達したら、API からさらに項目を取得する必要があります。これを実装する方法の例を次に示します。

于 2014-12-24T08:38:28.750 に答える
0

ユーザーがリストの最後にいる場合は、REST 呼び出しを行う必要があります。

ユーザーが最後にいるかどうかを理解する方法は 2 つあります。

1 つの方法は、ScrollViewコールバックを使用することです。のために特別に書かれたものではありませんListView

もう 1 つの方法は、AdaptergetView関数を使用することです。ユーザーが下にスクロールするgetViewと、アイテムの位置とともに 1 つずつ呼び出されます。位置が最後のアイテムの場合、IntentServiceその作業を開始できます。

IntentService を 1 回だけ開始するようにする必要があります。そのためのフラグを立てることができます。

于 2014-12-24T08:20:13.300 に答える