4

リスト ビューの選択されたアイテムを取得する方法は 2 つあります。

  1. list.getAdapter().getItem(position);
  2. list.getItemAtPosition(position)

私の質問は、どちらがそれを行うための好ましい方法ですか?

私は人々が両方を使用しているのを見てきました。

4

3 に答える 3

3

お好きなものをお使いいただけます。getItemAtPosition(position)基本的に、を使用してアダプタを呼び出しますgetItem(position)。これは同じことです。

于 2012-05-06T18:59:29.293 に答える
2

getItemAtPosition()のソースコードからの実装は次のとおりですListView

public Object getItemAtPosition(int position) {
  T adapter = getAdapter();
  return (adapter == null || position < 0) ? null : adapter.getItem(position);
}

つまり、基本的には同じです。

于 2012-05-06T19:06:10.060 に答える
1

他の答えは正しくありません。大きな違いが 1 つあります。

ListView にヘッダーを追加すると、ListView はアダプターを HeaderViewListAdapter にラップします。HeaderViewListAdapter の仕事はposition、ヘッダーを考慮して変換することです。

たとえば、1 つのヘッダーを追加した場合position 1、基になるアダプターのposition 0. adapter.getItem(position) を使用しようとすると、実際にはアダプターの 2 番目のアイテムが返されます。

ヘッダーを追加した場合は、listView.getItemAtPosition(position) を使用する必要があります。

于 2015-03-25T20:38:59.777 に答える