相关疑难解决方法(0)

类似Gmail的ListView带复选框(并使用ActionBar)

我正在尝试重新创建Google在Gmail应用中使用ListView所做的事情.特别是,我想让每个列表项包括一个CheckBox和两个TextView(一个在另一个之上).检查(或单击)CheckBox时以及单击列表项上的任何其他位置时,我需要侦听器.最后,我希望ActionBar能够反映选择的项目,并提供Select All,Select None等选项(请参阅此屏幕截图).

在此输入图像描述

到目前为止,这是我想出的布局.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <CheckBox android:id="@+id/checkBox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal" />

    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:padding="6dp"
        android:focusable="true"
        android:clickable="true" >

        <TextView android:id="@+id/titleTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="16sp" />

        <TextView android:id="@+id/dateTextView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="12sp" />

    </LinearLayout>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这会正确显示所有内容,但我需要有关如何为两个视图设置侦听器的指针(@ + id/checkBox@ + id/linearLayout1).我查看了List16 API演示,但他们使用的是simple_list_item_activated_1布局,我不确定它的XML是什么样的.正如他们的代码建议的那样,我创建了一个实现ListView.MultiChoiceModeListenerModeCallback类,并将ListView的选择模式设置为CHOICE_MODE_MULTIPLE_MODAL,但我不知道如何在我的布局中使用CheckBox来处理它.

有没有人成功复制了Gmail应用的ListView行为?我已经搜索了很多但无法想出任何东西(尽管其他几个人提出了类似的问题,比如这个问题- 大多数答案只是回到同样的API演示).

另外,对于上下文,我将SQLite数据库中的数据加载到列表中,并且我已经创建了自己的Cursor适配器(工作正常).我有一种感觉,我需要在newView()和bindView()方法中在这个类中设置监听器,但我尝试过的一切都没有用.

有任何想法吗?

checkbox android listview android-actionbar

18
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

android-actionbar ×1

checkbox ×1

listview ×1