`

Android自定义含有CheckBox的Adapter遇到的问题

阅读更多

版权所有,欢迎转载,转载请注明 : SinFrancis  http://mdev.cc 

 

在做含有CheckBox的Adapter的可能会遇到的问题:

 

1.、ListView item中加入checkbox后onListItemClick 事件无法触发。

原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。

解决方案:设置checkbox的android:focusable="false"

 

2、选择其中的checkbox,当滚动ListView的时候,会出现一些Checkbox选择错位的现象,

原因:为记住Checkbox的选择状态

解决方案:当选择Checkbox的时候,记下其状态,然后在getView方法中进行设置

代码如下:

	Object b = (Object ) getItem(position);
		if (b != null) {
			if(selectedSet.contains(b)){
				viewHolder.checkBox.setChecked(true);
			}else{
				viewHolder.checkBox.setChecked(false);
			}
	
		}
 

分享到:
评论
7 楼 罡风笑 2010-11-04  
<div class="quote_title">sinfrancis 写道</div>
<div class="quote_div">
<p><span style="font-size: 13px; line-height: 17px; font-family: Helvetica,Arial,sans-serif; color: #ff0000;">版权所有,欢迎转载,转载请注明 : SinFrancis  <a style="color: #e9650e; text-decoration: underline;" href="http://mdev.cc/">http://mdev.cc</a> </span></p>
<p> </p>
<p>在做含有CheckBox的Adapter的可能会遇到的问题:</p>
<p><span style="line-height: 18px; font-family: Arial,sans-serif,Helvetica,Tahoma;">
<p style="padding: 0px; margin: 0px;"> </p>
<p style="padding: 0px; margin: 0px;">1.、ListView item中加入checkbox后onListItemClick 事件无法触发。</p>
<p style="padding: 0px; margin: 0px;">原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。</p>
<p style="padding: 0px; margin: 0px;">解决方案:设置checkbox的android:focusable="false"</p>
<p style="padding: 0px; margin: 0px;"> </p>
<p style="padding: 0px; margin: 0px;">2、选择其中的checkbox,当滚动ListView的时候,会出现一些Checkbox选择错位的现象,</p>
<p style="padding: 0px; margin: 0px;">原因:为记住Checkbox的选择状态</p>
<p style="padding: 0px; margin: 0px;">解决方案:当选择Checkbox的时候,记下其状态,然后在getView方法中进行设置</p>
<p style="padding: 0px; margin: 0px;">代码如下:</p>
<p style="padding: 0px; margin: 0px;"> </p>
<pre name="code" class="java"> Object b = (Object ) getItem(position);
if (b != null) {
if(selectedSet.contains(b)){
viewHolder.checkBox.setChecked(true);
}else{
viewHolder.checkBox.setChecked(false);
}

}</pre>
</span></p>
<p>  可以简化一下代码: </p>
<p>if(b != null){</p>
<p>    viewHolder.checkBox.setChecked(selectedSet.contains(b));</p>
<p><span style="line-height: 18px; font-family: Arial,sans-serif,Helvetica,Tahoma;">}</span></p>
<p>为什么还要判断IF?</p>
<p> </p>
<p>错位的情况我也出现过。我将监听事件写在 这句代码之前就没有出现错位的情况。 不知道是否适用你?</p>
</div>
<p> </p>
6 楼 sinfrancis 2010-10-27  
hshm 写道
楼主,你的代码中:selectedSet是什么。这段代码放在哪里?


selectedSet 是一个set集合 用于存放选择的对象的
类成员变量
5 楼 hshm 2010-10-26  
LZ,能不能发个稍微完整的代码看下
4 楼 hshm 2010-10-26  
楼主,你的代码中:selectedSet是什么。这段代码放在哪里?
3 楼 aliang1121 2010-08-25  
请问getView()方法是在哪里呢?
2 楼 sinfrancis 2010-07-10  
mingkg21 写道
太OUT了,我的代码里早就写了,都不去看

你不给我看 我怎么看呢
1 楼 mingkg21 2010-07-09  
太OUT了,我的代码里早就写了,都不去看

相关推荐

    Android自定义adapter的listview

    以上就是关于“Android自定义adapter的listview”的主要知识点。自定义Adapter是Android开发中的核心技能之一,掌握好这一技巧,能帮助我们实现各种复杂的界面效果。通过不断实践和优化,我们可以在保证性能的同时,...

    Android自定义Dialog多选对话框(Dialog+Listview+CheckBox)

    总结起来,这个示例展示了如何在Android应用中创建一个具有多选功能的自定义Dialog,通过Dialog、ListView和CheckBox的组合实现用户交互。这种功能在很多场景下都很实用,比如选择联系人、文件或者其他任何需要用户...

    自定义带CheckBox的ListView

    本教程将详细讲解如何实现一个自定义的ListView,其中包含CheckBox元素,以提供更丰富的交互体验。 1. **自定义Adapter** 自定义ListView的核心在于自定义Adapter。你需要创建一个新的类,继承自BaseAdapter或...

    自定义带CheckBox的ExpandableListView

    1. **自定义Adapter**:为了在`ExpandableListView`中添加`CheckBox`,我们需要创建一个自定义的`ExpandableListAdapter`。这个Adapter需要继承`BaseExpandableListAdapter`,并重写其必要的方法,如`getGroupCount...

    自定义ListView加CheckBox

    在Android开发中,ListView是一种常用的组件,用于展示大量的数据列表。然而,为了提供更丰富的交互体验,我们常常需要在ListView的每一项中添加CheckBox,从而实现单选、多选、全选和反选功能。本教程将深入讲解...

    Android 扩展 带CheckBox的expandableListview

    为了实现CheckBox与子项的联动,开发者需要编写自定义的Adapter。Adapter是连接数据源和视图的关键,它负责将数据转换为视图并绑定到ListView上。在这个案例中,Adapter需要包含一个布尔数组来记录每个子项CheckBox...

    android 自定义单选、多选对话框及popwindow窗口实例源码.zip

    通过这些基础,你可以根据提供的“自定义单选、多选对话框及popwindow窗口实例源码”进一步学习和实践,加深对Android自定义对话框和PopWindow的理解。在开发过程中,要注意用户体验,合理使用动画和过渡效果,使...

    Android 多行多列CheckBox

    综上,实现"Android 多行多列CheckBox"需要理解Android布局系统,熟练掌握RecyclerView的使用,以及自定义Adapter和数据绑定。通过合理的布局设计和事件处理,可以创建出满足需求的用户界面。在实际开发中,可以根据...

    android listview 里面使用checkbox

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

    Android完美解决ListView复用导致的Checkbox状态混乱问题

    在Android开发中,ListView是常用的一种控件,用于展示大量数据列表。然而,ListView的复用机制有时会导致一些问题,特别是在涉及复选框(Checkbox)的状态管理时。本篇文章将详细探讨这个问题,并提供一个完美的...

    滑动删除自定义listview、checkbox点击全显效果等逻辑

    首先,我们需要创建一个自定义的ListView adapter。这个adapter需要继承自BaseAdapter,以便我们可以自定义每个item的布局和行为。在`getView()`方法中,我们需要为每个item添加一个滑动删除的按钮和一个CheckBox。 ...

    android listview和checkbox联合使用选中和取消

    本文将详细介绍如何在Android应用中实现ListView与CheckBox的联合使用,包括数据绑定、事件监听以及选中状态管理。 首先,我们需要创建一个自定义的ListView项布局,该布局中包含一个CheckBox。例如,创建一个名为...

    android ListView+CheckBox实现单选

    创建一个继承自BaseAdapter的自定义Adapter,用于处理ListView的数据绑定。在getView()方法中,根据ItemModel的isSelected属性设置CheckBox的状态。 ```java public class ItemAdapter extends BaseAdapter { ...

    完美解决ListView和CheckBox的焦点冲突及CheckBox的复用问题

    然而,当ListView中的元素包含可交互的控件,如CheckBox时,会遇到一些常见问题,如焦点冲突和视图复用导致的显示异常。本文将详细探讨这些问题以及如何通过优化来实现“完美解决ListView和CheckBox的焦点冲突及...

    Android ListView+checkbox 实现批量删除

    在实际应用中,我们经常需要实现一个功能,让用户能够选择ListView中的多个条目进行批量删除,这正是"Android ListView+checkbox 实现批量删除"这个主题所涵盖的知识点。下面我们将详细探讨如何在Android中实现这一...

    android CheckBox的使用

    在Android开发中,CheckBox是用户界面(UI)中不可或缺的组件之一,它允许用户进行多选操作,非常适合在列表或选项中提供多个可选项目。本教程将深入讲解如何在Android应用中有效地使用CheckBox。 首先,我们需要...

    Android自定义本地相册的功能,可以多选图片Demo.zip

    在Android开发中,自定义本地相册功能是常见的需求,特别是在涉及到用户选择多张图片的应用场景,例如社交应用、图片编辑应用等。本Demo主要展示了如何实现这一功能,让用户能够在一个自定义的相册界面中多选图片。...

    android listview+checkbox实现多选

    为了将数据与Checkbox关联,我们需要创建一个自定义的Adapter,继承自BaseAdapter或ArrayAdapter。在这个Adapter中,我们需要重写`getView()`方法,以便为每个列表项设置Checkbox的初始状态,并处理Checkbox的点击...

    Android ListView CheckBox

    本篇文章将详细探讨如何在Android中实现一个具有多选、反选、删除和全选功能的ListView,结合CheckBox的使用。 首先,我们需要创建一个自定义的ListView项布局,包含一个TextView用于显示数据,以及一个CheckBox...

    Android自定义选择相册图片并带自定义裁剪、旋转

    以上就是关于“Android自定义选择相册图片并带自定义裁剪、旋转”这个主题所涉及的主要技术点。在实际开发中,还需要考虑用户体验、性能优化以及异常处理等多个方面,以提供一个稳定且用户友好的功能。

Global site tag (gtag.js) - Google Analytics