如何将复选框添加到 ListActivity 而不会丢失 onListItemClick 功能?

Posted

技术标签:

【中文标题】如何将复选框添加到 ListActivity 而不会丢失 onListItemClick 功能?【英文标题】:How can I add a checkbox to a ListActivity and not lose onListItemClick functionality? 【发布时间】:2011-04-06 10:20:15 【问题描述】:

我有一个 ListActivity 按预期工作。单击列表项时,应用程序会正确响应。我想在屏幕最右侧的每个列表项旁边添加一个复选框。当我试图通过更新 XML(见下文)来做到这一点时,我失去了 onListItemClick 功能。当我点击一个列表项时,什么也没发生。


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical">

    <TableLayout
        android:id="@+id/table1"
        android:layout_
        android:layout_
        android:stretchColumns="1">

        <TableRow>
            <TextView android:id="@+id/tvProduct" 
                android:layout_
                android:layout_
                android:textSize="20sp"
                android:paddingLeft="10sp"
                android:paddingRight="10sp" />
        </TableRow>

    </TableLayout>

    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="horizontal">

        <TextView android:id="@+id/tvPrice" 
            android:layout_
            android:layout_
            android:paddingLeft="10sp"
            android:paddingRight="10sp"
            android:textColor="#606060" />

    </LinearLayout>

</LinearLayout>

我正在尝试在 tvProduct 对象旁边添加复选框。

感谢任何帮助。

【问题讨论】:

【参考方案1】:

当 ListView 有可聚焦(可点击)的子视图时,它本身会失去可聚焦性。您可以通过在 ListView 内单击来拥有一个复选框(按钮等),或者让整行都可单击。

如果您尝试允许用户选择多行并在复选框中显示选择状态,您可以使用choiceModeCHOICE_MODE_MULTIPLE。

这是一个正在使用的example。

【讨论】:

谢谢。这正是我希望它看起来的样子,但我认为功能不是我想要的。用户将有 3 个选项卡,每个选项卡都会生成一个 ListActivity。第一个选项卡将包含未选中的值,第二个是选中的值,第三个是所有值。当一个复选框被选中时,我希望该工具将其移动到正确的选项卡(选中或未选中)。【参考方案2】:

在getview方法中的adapter中,设置checkbox使用checkbox.setFocusable(false)和checkbox.setFocusableInTouchMode(false)。您仍然可以单击复选框,但单击其他​​任何地方都会获取列表项。两者都工作正常。

我知道已经有了答案,但这在过去对我有用,而且很容易实现,所以我想添加它。

【讨论】:

以上是关于如何将复选框添加到 ListActivity 而不会丢失 onListItemClick 功能?的主要内容,如果未能解决你的问题,请参考以下文章

列表数据更改时更新Android ListActivity?

如何在 JQuery 中添加和删除数组而不重新索引数组键

Android ListActivity - 如何在 ListView 下方添加视图?

自定义列表单击复选框

如何将复选框添加到添加的列表中?

如何将复选框列添加到剑道网格