質問

私は、リスト項目のいずれかがクリックされたとき、別のアクティビティを開始し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では、私はその後、私のメインのOnClickListenerLinearLayoutに、別のOnCheckedChangeListenerにカスタムCheckBoxを設定します。

このすべては、右を見て、私はのは、描画可能にMenuItemのAndroidにLinearLayoutの背景を設定する必要がありました。

android:background="@android:drawable/menuitem_background"

他のヒント

は唯一の作品は、こちらここクリックリスナーを説明したように場合は、他のビューがfocusableではありません。 CheckBoxにごfocusable="false"を設定すると、トリックを行う必要があります:

<CheckBox android:focusable="false" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top