0

私がしたいこと:

  • アイテムのリストを表示する
  • 実際のデータは外部ソースから取得され、変更される可能性があります
  • 各項目には複数の「列」を含めることができます。例: 「タイプ」、「コンテンツ」、「日付」
  • リストは、たとえば、「タイプ」と「日付」でソートできる必要があります。

ListView を使用して目的の機能を取得できる可能性があると考えました (しかし、これも非常に悪い選択でしょうか?)。私はそれらについていくつか読んだことがありますが、まだいくつか質問があります。ListView は、アダプターによって管理されるデータを表示することを知っています。ArrayAdapter を使用している場合、Listview は常に、Adapter 内の基になる配列の順序で項目を表示しますか? 並べ替えを実装するには、アダプターの配列を何らかの方法で変更する必要がありますか? SimpleAdapter を使用して複数のプロパティを連続して使用できることを読みましたが、SimpleAdapter が使用するデータは静的であるようです。どうすればそれを達成できますか?

前もって感謝します!

4

2 に答える 2

1

独自のアダプターを作成し、自分のgetView()位置に一致するビューを返します。たとえば、次のようなデータを取得した場合:

id  name
0   ccc
1   bbb
2   aaa

次に、並べ替えをid行い、listview が位置 1 の行を必要とする場合は、 を返し1 bbbます。ただし、名前の昇順で並べ替え、リストに行 #2 が必要な場合は、 を返し0 cccます。もちろん、「マッピング」を維持する必要がありますが、それはかなり簡単です。

于 2012-11-27T15:48:30.463 に答える
1

はい、または( ) のソートListView方法に応じて表示されます。ここで、各行に複数のプロパティが必要な場合は、名前、年齢、住所などを取得する任意のを作成することをお勧めします。次に、オブジェクトを取得するリストを作成します。次に、あなたがオーバーライドするあなたの中で、あなたは呼び出すことができ、今ではその特定の行(位置)でそのオブジェクトを保持しており、そのオブジェクトで好きなことをすることができます.ArrayListVector[]Objectclass PersonPersongetViewArrayAdapterPerson person = getItem(position);Person

于 2012-11-27T15:49:57.083 に答える