ListView にヘッダーを追加したばかりで、ヘッダーが基本的に位置 0 になるため、一連のコードを変更する必要があります (つまり、CursorAdapter のカーソル インデックスがリストのインデックスと一致しません。それらは 1 ずれています)。今)。なんで?これは私には少しばかげているようです。
私が思いつく唯一の理由は、開発者がヘッダーにアクセスしたいということです。罰金。getListView().getHeader() のようなものを提供します。
ListView にヘッダーを追加したばかりで、ヘッダーが基本的に位置 0 になるため、一連のコードを変更する必要があります (つまり、CursorAdapter のカーソル インデックスがリストのインデックスと一致しません。それらは 1 ずれています)。今)。なんで?これは私には少しばかげているようです。
私が思いつく唯一の理由は、開発者がヘッダーにアクセスしたいということです。罰金。getListView().getHeader() のようなものを提供します。
何らかの理由でposition
(から) は、ヘッダーとフッターを含む(アダプターではなくonItemClick
)内のアイテムの数と結び付いています。を設定するときは、 の代わりに を呼び出して、クリックされた項目を取得する必要があります。ListView
OnItemClickListener
listView.getItemAtPosition(position)
adapter.getItem(position)
実際、ヘッダーとフッターがgetItemAtPosition
あるかどうかは問題ではなく、新しいヘッダーを追加する場合はコードを変更する必要がないため、常に を使用する必要があります。ListView
また、ヘッダーを選択可能にしたくない場合は、次の方法で追加する必要がありますlistView.addHeaderView(headerView, null, false)
。
a は要素ListView
のリストにすぎないと思います。View
にヘッダー(またはフッターを追加しても違いはありません)を追加してもListView
、その要素は基本的に、ListAdapter
. 唯一の小さな違いは、ヘッダー (およびフッター) 要素が固定され、ListAdapter
がリストに対して行うことの影響を受けないことです。ただし、それらは通常の要素にすぎません。