0

各行に2つのtextView、3つのimageButton、および1つのcheckBoxを持つスクロール可能なリストビューがあります。

listView のヘッダーには、listView のすべてのチェックボックスを含む列のすぐ上に削除ボタンがあります。

listViewをスクロールして2つ以上のチェックボックスがランダムにチェックされ、その後上部の削除ボタンがクリックされた場合、listView内のオブジェクトの削除操作を実行する必要があります。

しかし、問題は、選択されたチェックボックスの正しい位置が得られないことです。さらに、正しい位置を取得することもありますが、渡された削除対象のオブジェクトが間違っています。したがって、おそらくリストのスクロールの性質が原因で、機能全体が影響を受けます。

アダプター クラスのホルダーの位置を取り、チェック済みまたは未チェックのチェックボックスの状態をオブジェクトにバインドする必要があります。

また、checkBox.setOnCheckedChangeListener() または deleteButton.setOnClickListener() を使用する必要があります。後者を使用する場合、削除ボタンを押す前にチェックボックスがオンになっているリストの対応するすべてのオブジェクトを取得するにはどうすればよいですか? また、関連するすべてのコードは、listAdapter クラスまたはアクティビティのどこに配置する必要がありますか?

この問題の解決策を見つけるのを手伝ってください..

4

2 に答える 2

0

まず、getView() メソッドで、特定の Tag を各 checkBox に設定する必要があります。例:check1.setTag(position)次に、チェックボックスの OnCheckBoxChangeListener と削除ボタンの OnClickListener の両方を実装する必要があります。ご存知のように、onCheckBoxChangeListner の設定は getView() メソッドで行う必要があります。次に、onCheckedChanged() メソッドの chechBoxes の getTag() メソッドを使用して、checkBox がチェックされているリストの位置を ArrayList に追加します。

于 2013-07-27T09:51:09.223 に答える
-1

試すgetListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {}

于 2013-07-27T09:15:13.790 に答える