`
phenom
  • 浏览: 409369 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

checkbox 在ListView中使用 3

 
阅读更多
前面两篇文章介绍了CheckBox在ListView里的使用,现在讨论另一种方式在ListView中使用CheckBox。就是包装数据的方式:
首先定义一个ListView的布局文件:
<ListView
        android:id="@+id/list_view"
        android:layout_height="fill_parent" android:layout_width="fill_parent"
        android:cacheColorHint="@color/none" />
然后就是一个Adapter,这里还是使用BaseAdapter的子类。
在getView里的
public View getView(int position, View convertView, ViewGroup parent) {
            if (null == convertView) {
final LayoutInflater inflater = LayoutInflater.from(getApplicationContext());
            contentView = inflater.inflate(R.layout.contactitem, null);
else {
                itemView = (BeanItemView) convertView;
            }
(BeanItemView)就不给出了,前面那段可以使用之前的,Holder,这里的(BeanItemView)是我自定义一个类。
这些都与前面的类似,
然后是:
final Bean bean = mList.get(position);
这个Bean是自己定义的一个内部类:
private static class Bean {

        String name; 这里暂时因为简单处理,用一个字符串,包装一个数据,比如可以是另一个Bean,这样原来的数据就不会有修改的麻烦了。
        boolean chk; 标明是否选中,
        boolean visible; 可以让CheckBox是否可见。

    }

然后定义这里的itemView.button.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    bean.chk = !bean.chk; 添加后,点击CheckBox才会生效。
                }
            });
itemView.textView.setText(bean.name);

itemView.button.setChecked(bean.chk);
设置是否CheckBox可见:
if (bean.visible == false) {
                itemView.button.setVisibility(View.INVISIBLE);
            } else {
                itemView.button.setVisibility(View.VISIBLE);
            }
getView就结束了。

数据就是private List<Bean> mList = new ArrayList<Bean>(20);
private CheckAdapter mAdapter;
private ListView listView;
因为数据里已经包含了这个CheckBox是否选中,所以处理就比较简单了,如果全选 就把mList里的chk全置为true就可以了。
item的布局:
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="wrap_content">

    <TextView
        android:id="@+id/txt" android:textSize="18dip"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_alignParentLeft="true" android:gravity="center"/>

    <CheckBox
        android:id="@+id/btn" android:text="btn"
        android:layout_width="70dip" android:layout_height="wrap_content"
        android:focusable="false" android:layout_alignParentRight="true"/>

</RelativeLayout>
这时只需一个CheckBox就可以用了。当然如果是这样,只有点击这个CheckBox时它才会选中,如果是前面那种方法,点击ListView里的一行任何地方都会有选中与取消。

图片下次再传了。

分享到:
评论

相关推荐

    CheckBox+ListView混合使用,并缓存

    CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存CheckBox+ListView混合使用,并缓存...

    ListView中添加CheckBox

    遇到以下问题的都可以看看: 1、ListView item中加入checkbox后onListItemClick 事件无法触发。 原因:checkbox的优先级高于ListItem于是...解决方案:当选择Checkbox的时候,记下其状态,然后在getView方法中进行设置

    listview中添加CheckBox的完美实现

    在这里,我们将使用一个 trick,即在 ListView 的 onItemClick 事件中,我们将检查当前点击的是 ListView 的子项还是 CheckBox。如果是 ListView 的子项,我们将显示该子项的内容;如果是 CheckBox,我们将改变该 ...

    C#完美可编辑多列含CheckBox的ListView

    在实际开发中,我们可能需要对ListView进行自定义,比如添加多列并支持CheckBox复选功能,同时还要实现数据的编辑功能。下面我们将详细探讨如何在C#中创建一个完美可编辑且包含CheckBox的多列ListView。 首先,我们...

    WPF中ListView添加CheckBox列

    在实际的应用场景中,我们经常需要在ListView中添加可选的复选框(CheckBox)列,以便用户能够选择一个或多个项目。本文将详细探讨如何在WPF的ListView中实现这一功能。 首先,我们需要理解WPF中的数据绑定机制。在...

    android listview 里面使用checkbox

    综上所述,要在Android的ListView中使用Checkbox,我们需要创建自定义Adapter,设计Checkbox的布局,管理复选状态,监听并处理用户操作,同时注意性能优化和状态恢复。在实际项目中,这样的实现方式能够提供灵活的...

    ListView添加CheckBox复选框

    为了增加用户交互性,我们经常会在ListView的每一项中添加CheckBox,这样用户就可以进行多选操作。本篇文章将详细讲解如何在ListView中实现CheckBox复选框的功能。 首先,我们需要创建一个自定义的ListView适配器。...

    带CheckBox的listView 支持多选,全选,反选

    在许多场景下,我们需要在ListView中加入复选框(CheckBox),实现多选、全选和反选的功能,例如在选择联系人、设置菜单等场景。这个“带CheckBox的listView”项目就是为了解决这类需求而设计的,并且已经解决了常见...

    CheckBoxListView

    CheckBoxListView是一种特定实现的列表视图,它在Android开发中被用于展示一系列可选择的项目。这个组件在设计时特别考虑了用户体验,确保用户在浏览列表时,每次只能选择一个条目的CheckBox,防止多选冲突,并且...

    如何使用LISTVIEW虚拟模式和Checkbox

    ### 如何使用LISTVIEW虚拟模式和Checkbox #### 一、使用虚拟模式 ##### 1. 在使用之前进行设置 为了启用虚拟模式,我们有两种方法来设置`ListView`控件: - **通过属性设置**:在控件的属性窗口中找到“行为”...

    ListView CheckBox

    - 在XML布局文件中,将CheckBox作为ListView子项的一部分进行定义,并设置其id以便在代码中引用。 3. **自定义Adapter**: - 为了使CheckBox与ListView的数据项关联,需要创建自定义Adapter。在自定义Adapter中,...

    pb带checkbox的listview的特殊效果

    在许多场景下,我们需要在ListView中集成复选框(Checkbox),以便用户能够进行多选操作,比如选择联系人、选择文件等。"pb带checkbox的listview的特殊效果"这个主题,就是关于如何在ListView中添加并定制带有复选框...

    WPF ListView控件中CheckBox全选联动

    在实际项目中,我们经常需要实现一个功能,即在ListView中加入CheckBox,让用户能够通过一个主CheckBox来控制所有子项CheckBox的选择状态,这就是所谓的全选/反选联动。在本文中,我们将深入探讨如何在WPF的MVVM...

    带checkbox的listview

    而“带checkbox的listview”是指在每个ListView的列表项中嵌入复选框(Checkbox),以供用户进行多选操作,如选择、勾选等。这种设计常见于需要用户选择多个项目的场景,如设置菜单、联系人选择等。 ### 1. ...

    自定义带CheckBox的ListView

    在`getView()`中,使用`findViewById()`找到XML布局中的CheckBox和TextView,然后将数据模型的值绑定到这些视图上。 9. **刷新视图** 当数据源发生变化时,如添加、删除或修改数据,需要调用Adapter的`...

    delphi中listview启用checkbox实现单选

    在Delphi编程环境中,ListView控件是一个非常常用的组件,它允许开发者展示列表数据,并提供了多种交互方式,如单击、双击以及复选框选择。本文将深入探讨如何在Delphi中启用ListView的复选框并实现单选功能,特别...

    c# ListView CheckBox 索引值

    当我们在ListView中添加了CheckBox复选框功能时,可能需要获取被选中的项的索引值,以便进行进一步的操作,比如处理用户的选择或者更新数据库。本文将详细介绍如何在C#中获取ListView中CheckBox的索引值。 首先,...

    解决ListView嵌套CheckBox滑动时选中状态错乱

    2. **ViewHolder**:在getView()方法中使用ViewHolder模式,这样可以快速找到CheckBox并减少查找视图的时间。ViewHolder应该包含CheckBox引用,以便于更新状态。 3. **数据绑定**:在getView()方法中,根据当前项的...

    Android里ListView里面添加CheckBox实现多选

    本篇文章将深入探讨如何在ListView中实现CheckBox的多选功能,并使用ViewHolder和ConvertView优化性能。 1. **ListView与Adapter基础** - ListView是Android中用于显示长列表的视图,它可以动态加载和回收视图,以...

Global site tag (gtag.js) - Google Analytics