8

ListView にヘッダーを追加したばかりで、ヘッダーが基本的に位置 0 になるため、一連のコードを変更する必要があります (つまり、CursorAdapter のカーソル インデックスがリストのインデックスと一致しません。それらは 1 ずれています)。今)。なんで?これは私には少しばかげているようです。

私が思いつく唯一の理由は、開発者がヘッダーにアクセスしたいということです。罰金。getListView().getHeader() のようなものを提供します。

4

2 に答える 2

22

何らかの理由でposition(から) は、ヘッダーとフッターを含む(アダプターではなくonItemClick)内のアイテムの数と結び付いています。を設定するときは、 の代わりに を呼び出して、クリックされた項目を取得する必要があります。ListViewOnItemClickListenerlistView.getItemAtPosition(position)adapter.getItem(position)

実際、ヘッダーとフッターがgetItemAtPositionあるかどうかは問題ではなく、新しいヘッダーを追加する場合はコードを変更する必要がないため、常に を使用する必要があります。ListView

また、ヘッダーを選択可能にしたくない場合は、次の方法で追加する必要がありますlistView.addHeaderView(headerView, null, false)

于 2012-07-15T13:54:18.750 に答える
1

a は要素ListViewのリストにすぎないと思います。Viewにヘッダー(またはフッターを追加しても違いはありません)を追加してもListView、その要素は基本的に、ListAdapter. 唯一の小さな違いは、ヘッダー (およびフッター) 要素が固定され、ListAdapterがリストに対して行うことの影響を受けないことです。ただし、それらは通常の要素にすぎません。

于 2010-10-26T21:59:42.290 に答える