8

ListView を逆順に表示する簡単な方法はありますか? 会話ベースのアプリを作成しようとしていますが、最新のエントリを ListView の一番下に配置したいと考えています。私はtranscriptModeとstackFromBottomを認識していますが、私の問題はデータの順序です。

100 の会話アイテムがあり、80 から 100 のアイテムを表示したいとします。100 が最新の会話アイテムです。クエリで ORDER BY id desc LIMIT 20 を意味する 80-100 を表示したいと思います。これは、必要なものとは逆に、項目を 100 から 80 にソートすることを強制します。私は現在、いくつかの厄介な内部クエリ コードを持っていますが、カーソルを逆にするか、単に ListView を逆にすることに基づいた、より簡単な解決策が必要だと感じています。

4

4 に答える 4

10

逆順のアダプタ内でこのgetItemメソッドを使用します。

@Override
public Object getItem(int position) {
   return super.getItem(super.getCount() - position - 1);
}
于 2013-11-21T14:45:12.127 に答える
10

の内部ではbaseAdaptergetView()メソッドに対して、データ内のアイテムをインデックス "position" で取得する代わりに、反対の を使用します。つまり、numberOfItems から position を差し引いたものです。

アイテムの数を表示する場合は、 baseAdapter 内にもあります: によって返される値getCount()を、希望する値に設定します (例では 20 ですが、80-100 は 21 であることを意味します)。

ところで、 listView の場合、あなたはスターターのようです。このビデオを見ることをお勧めします: http://www.youtube.com/watch?v=wDBM6wVEO70

また、sdk manager によって提供される api-demos も確認してください。そこにはたくさんの例があります。

于 2012-06-07T23:44:08.507 に答える
0

BETWEEN キーワードを使用したレコードのクエリは、私にとって最も簡単な解決策のようです。

于 2012-06-08T00:40:08.197 に答える