リスト ビューの選択されたアイテムを取得する方法は 2 つあります。
list.getAdapter().getItem(position);
list.getItemAtPosition(position)
私の質問は、どちらがそれを行うための好ましい方法ですか?
私は人々が両方を使用しているのを見てきました。
リスト ビューの選択されたアイテムを取得する方法は 2 つあります。
list.getAdapter().getItem(position);
list.getItemAtPosition(position)
私の質問は、どちらがそれを行うための好ましい方法ですか?
私は人々が両方を使用しているのを見てきました。
お好きなものをお使いいただけます。getItemAtPosition(position)
基本的に、を使用してアダプタを呼び出しますgetItem(position)
。これは同じことです。
getItemAtPosition()
のソースコードからの実装は次のとおりですListView
。
public Object getItemAtPosition(int position) {
T adapter = getAdapter();
return (adapter == null || position < 0) ? null : adapter.getItem(position);
}
つまり、基本的には同じです。
他の答えは正しくありません。大きな違いが 1 つあります。
ListView にヘッダーを追加すると、ListView はアダプターを HeaderViewListAdapter にラップします。HeaderViewListAdapter の仕事はposition
、ヘッダーを考慮して変換することです。
たとえば、1 つのヘッダーを追加した場合position 1
、基になるアダプターのposition 0
. adapter.getItem(position) を使用しようとすると、実際にはアダプターの 2 番目のアイテムが返されます。
ヘッダーを追加した場合は、listView.getItemAtPosition(position) を使用する必要があります。