我有一个ListActivity按预期工作。单击列表项时,应用程序会正确响应。我想在屏幕的最右侧添加一个复选框,旁边是每个列表项。当我尝试通过更新XML(见下文)来做到这一点时,我丢失了onListItemClick功能。当我点击列表项时没有发生任何事情。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableLayout
android:id="@+id/table1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="1">
<TableRow>
<TextView android:id="@+id/tvProduct"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:paddingLeft="10sp"
android:paddingRight="10sp" />
</TableRow>
</TableLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/tvPrice"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10sp"
android:paddingRight="10sp"
android:textColor="#606060" />
</LinearLayout>
</LinearLayout>
我正在尝试添加tvProduct对象旁边的复选框。
感谢任何帮助。
答案 0 :(得分:3)
当ListView具有可聚焦(可点击)的孩子时,它本身会失去焦点。您可以通过在ListView内部单击可以选中复选框(按钮等),也可以使整个行可单击。
如果您尝试允许用户选中多行并在复选框中显示选择状态,则可以使用choiceMode CHOICE_MODE_MULTIPLE。
以下是正在使用的example。
答案 1 :(得分:1)
在getview方法的适配器中,设置复选框使用checkbox.setFocusable(false)和checkbox.setFocusableInTouchMode(false)。您仍然可以单击复选框,但单击其他任何位置都会获得列表项。两者都很好。
我知道已经有了答案,但这对我来说过去很容易实现,所以我想添加它。