リスト ビューの選択されたアイテムを取得する方法は 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) を使用する必要があります。