2009-05-21 15 views
7

CursorからListActivityを入力しました。リスト項目の1つがクリックされたときに別のアクティビティを開始するSimpleCursorAdapterを使用しました。私はまた、ViewBinderを使用して、データのカスタム変換を行っています。カスタムリストをチェックボックスでクリックする

リストの各行にCheckBoxを追加して、ビューを変更して、重力で右にCheckBoxを追加しました。

CheckBoxを追加すると、アイテムをクリックする機能が削除されました。 onListItemClickメソッドをオーバーライドしました。リスト項目を押したときに呼び出されなくなりました。ListActivityCheckBoxを削除するとこれが修正されます。どうしてこれなの?

また、リスト項目のメイン部分がクリックされても項目内のCheckBoxがチェックされている場合に追加の機能がある場合、必要な機能を実行するようにリストを設定するにはどうすればよいですか? onCheckedChangedListenerを設定するか、リスト内の各項目に対して同じビューインスタンスが再利用されますか?

答えて

4

SimpleCursorAdapterのように見えますが、私が達成したいと思ったものにはあまりにも原始的です。 私はCursorAdapterを実装し、newViewメソッドの実装ではLayoutInflaterを使用して新しいビューを返しました。 bindViewで

public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false); 
    } 

私はその後、私のメインのLinearLayoutCheckBoxに、別のOnCheckedChangeListenerにカスタムOnClickListenerを設定します。このすべてが右に見えるためには

が、私はのは、描画可能なのMenuItem Androidに LinearLayoutの背景を設定する必要がありました:他のビューが focusableない場合

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

こんにちは、あなたがこののより多くのコードを投稿することができます:focusable="false"CheckBoxは、トリックを行う必要があり、あなたの設定? – Maxrunner

14

としてはhere説明し、クリックリスナーにのみ機能します。

<CheckBox android:focusable="false" />