如何使用自定义行布局使 ListView 单选

发布于 2024-12-10 13:29:46 字数 1152 浏览 0 评论 0原文

我有 ListView 的行布局,就像我在 getView 方法中在适配器(扩展 BaseAdapter )中膨胀一样,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <CheckBox
        android:id="@+id/chk"
        android:button="@drawable/q_list_check_box"
        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        />
    <TextView
        android:id="@+id/txtChoice"
        android:textColor="@color/white"
        android:layout_gravity="center_vertical|left"
        android:gravity="center_vertical|left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" /> 
</LinearLayout>

我将其放在 ListView 标签 android:choiceMode="singleChoice" 处。如何使列表单选,一次只能检查一行?

I have ListView with layout for row like which I inflate at adapter ( extend BaseAdapter ) at getView method

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <CheckBox
        android:id="@+id/chk"
        android:button="@drawable/q_list_check_box"
        android:layout_alignParentLeft="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_gravity="center_vertical"
        android:gravity="center_vertical"
        />
    <TextView
        android:id="@+id/txtChoice"
        android:textColor="@color/white"
        android:layout_gravity="center_vertical|left"
        android:gravity="center_vertical|left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" /> 
</LinearLayout>

I put at ListView tag android:choiceMode="singleChoice". How to make list single choice, that only one row can be checked at time ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏日浅笑〃 2024-12-17 13:29:46

当我必须使用自定义行实现选择时,我使用布尔值数组列表来保持行的状态。布尔数组列表的大小与列表视图的行相同。您可以通过更改 OnListItemClick() 中相应布尔值来选择/取消选择该行。无论如何,这只是一个想法。这是一个可以帮助理解这一点的链接:

带有复选框的自定义列表行

When I had to implement selection with my custom row., I used an arraylist of boolean to keep the state of the row. The size of boolean arraylist is same as rows of the listview. You can select/deselect the row via changing the value of corresponding boolean in OnListItemClick(). Anyways its just an idea. Here is a link that can help to understand this:

Custom List row with checkbox

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文