チェックボックスとカスタムリストクリック
-
23-08-2019 - |
質問
私は、リスト項目のいずれかがクリックされたとき、別のアクティビティを開始しListActivity
を使用してCursor
からSimpleCursorAdapter
を埋めました。私はまた、データのいくつかのカスタム変換を行うためにViewBinder
を使用しています。
私はビューを変更し、重力でCheckBox
を追加しましたので、リスト内の各行にCheckBox
を追加したい右ます。
CheckBox
を追加するには、項目をクリックする機能を削除しました。私はonListItemClick
でオーバーライドされたListActivity
メソッドを使用すると、リスト項目を押したときに呼び出されなくなりました。 CheckBox
を削除すると、これを修正します。これはなぜでしょうか?
また、私はそれがリスト項目の主要部分がクリックされたが、項目にCheckBox
がチェックされている追加機能を持っている場合は、私に必要な機能を実行し続けるようにリストを設定することができますか? onCheckedChangedListener
の仕事を設定したり、リスト内の各項目に対して再利用同じビューのインスタンスであるのだろうか?
解決 2
SimpleCursorAdapter
は私が達成したい何のためにあまりにも原始的であるように見えます。
私はCursorAdapter
を実装し、LayoutInflater
方法の私の実装でnewView
を使用して新しいビューを返すに切り替えました。
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
}
bindViewでは、私はその後、私のメインのOnClickListener
とLinearLayout
に、別のOnCheckedChangeListener
にカスタムCheckBox
を設定します。
LinearLayout
の背景を設定する必要がありました。
android:background="@android:drawable/menuitem_background"
他のヒント
は唯一の作品は、こちらここクリックリスナーを説明したように場合は、他のビューがfocusable
ではありません。 CheckBox
にごfocusable="false"
を設定すると、トリックを行う必要があります:
<CheckBox android:focusable="false" />