`
huangbowen_java
  • 浏览: 6469 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

解决listView中的Item监听和item中按钮或者复选框的冲突问题

阅读更多

前段时间遇到了一个问题,lListView一直得不到OnItemClickListener监听,很苦恼,不知道是什么原因出现的这种问题。经过仔细查看,这次的ListView和以往的不同,这次的ListView的每一项多个一个复选框,从网上查到,复选框的OnCheckedChangeListener事件和ListView的OnItemClickListener时间有冲突,复选框的OnCheckedChangeListener事件会优先于ListView的OnItemClickListener时间,因此,如果ListView中的Item中包括复选框或者按钮时。都是这些控件会有响应的事件,而ListView却失去了响应。解决这个问题其实很简单。

1:就是在你的ListView的自定义的adapter里面给这个控件单独设置监听。单,前提是要先将对话框或者按钮的focusable属性设置为false,这在xml文件中就可以设置: android:focusable="false"。

2: 在你自定义的适配器中定义一个方法用于给复选框或者按钮添加监听

public void addListener(View convertView, int arg) {

//给复选框添加监听,给按钮添加监听就类似了
  ((CheckBox) convertView.findViewById(R.id.xuanze))
    .setOnCheckedChangeListener(new OnCheckedChangeListener() {
     @Override
     public void onCheckedChanged(CompoundButton buttonView,
       boolean isChecked) {
      new AlertDialog.Builder(
        ExchangePartActivity.exchangePart)
        .setTitle("自定义通用SimpleAdapter")
        .setMessage("CheckBox成功触发状态改变监听事件!").show();
     }
    });
 }

3:在适配器的getView方法中调用这个方法就OK了!

分享到:
评论

相关推荐

    listview添加复选框

    3. **添加列表项和复选框状态**: 通过`ListViewItem`添加列表项,并为每个项设置`Checked`属性来控制复选框的状态: ```csharp ListViewItem item1 = new ListViewItem("项1"); item1.Checked = true; // 设置...

    ListView添加CheckBox复选框

    本篇文章将详细讲解如何在ListView中实现CheckBox复选框的功能。 首先,我们需要创建一个自定义的ListView适配器。适配器是连接数据源和ListView的关键,它负责将数据转化为可显示的视图。创建一个继承自`...

    带按钮listview,添加监听

    为了增强用户体验和交互性,我们常常会在ListView的每一项(Item)中添加按钮。这样,用户可以通过点击按钮来执行特定的操作,如查看详情、删除条目等。本教程将详细介绍如何在ListView中添加按钮并实现监听事件。 ...

    delphi Listview复选框checkbox实现单选的功能

    本示例着重讲解如何在ListView中实现复选框的单选功能。 在Delphi中,ListView的复选框功能可以通过设置`ListView.Style`属性为`vsReport`来开启。默认情况下,ListView并不支持复选框的单选模式,我们需要自定义...

    带复选框的listview

    在实际项目中,你可能还会遇到其他挑战,比如复选框的选中状态同步问题、多选模式下的全选和取消全选功能、以及优化ListView性能以处理大量数据等。这些都需要通过进一步的编程技巧和设计模式来解决,比如使用...

    解决listview中 条目复选框的布局复用引起的错位现象

    然而,当涉及到复选框(CheckBox)作为ListView条目的部分时,由于ListView的优化机制——视图复用(View Recycling),可能会出现复选框状态错位的现象。这个问题通常发生在用户快速滚动ListView时,因为ListView会...

    WPF实现带全选复选框的列表控件

    由此看出,“全选”复选框与列表项中的复选框达到了双向控制的效果。 其设计思路:首先,创建自定义控件(CheckListView),在其 ControlTemplate 中定义 CheckBox 和 ListView,并为 ListView 设置 Ite

    android的ListView中的复选框的问题

    3. **嵌套滚动冲突:**当两个`ListView`被放置在同一个水平滚动视图中时,它们之间的滚动冲突也可能导致焦点问题。尤其是在其中一个ListView被滚动时,另一个ListView中的CheckBox可能因此失去焦点,从而无法选中。 ...

    listview添加图片按钮 及按钮跟ListView双监听

    本文将深入探讨如何在ListView中添加图片和按钮,并实现它们以及ListView的双监听,以便按钮点击时能触发Activity的跳转。 首先,我们需要创建一个自定义的ListView适配器,通常会继承自BaseAdapter。在这个适配器...

    ListView像左滑动Item显示删除按钮

    本篇文章将详细讲解如何实现ListView中Item的左滑动显示删除按钮。 首先,我们需要一个自定义的ListView,这通常通过继承ListView类并重写其onTouchEvent()方法来实现。在这个方法中,我们可以监听用户的滑动操作。...

    Android 为ListView每个Item上面的按钮添加事件

    在每个Item中,我们通常会创建一个布局文件,该布局文件包含TextView和Button等元素。 为了给每个Item的Button添加点击事件,我们需要在Adapter的getView()方法中进行处理。在getView()中,我们可以找到Button对象...

    带编辑框复选框解决了复用问题的listview

    本篇将详细讲解如何利用带编辑框(EditText)和复选框(Checkbox)的ListView解决复用问题。 首先,我们需要理解ListView的工作原理。ListView为了提高性能,会重用已滑出屏幕的视图,这就是所谓的视图复用机制。当...

    listview的item侧滑事件监听

    总的来说,实现ListView Item的侧滑事件监听是一个结合了触摸事件处理、手势识别和视图动画的综合过程,它提升了应用的交互性和用户友好性。在实际开发中,开发者还需要根据项目需求进行定制和优化,以满足各种复杂...

    ListView复选框只允许双击选定的软件源码

    ### ListView复选框只允许双击选定的知识点 #### 一、概述 在Windows编程或桌面应用程序开发过程中,用户界面(UI)设计是非常重要的一个环节。其中,`ListView` 控件因其强大的功能和灵活性,在各种应用中被广泛使用...

    ListView的Item带单选按钮

    综上所述,要在ListView的Item中添加单选按钮并响应事件,需要创建自定义Adapter,定义Item布局,设置事件监听,保持数据和视图同步,实现单选效果,并优化性能。通过以上步骤,你可以在Android应用中实现功能完备且...

    安卓列表复选框

    在许多场景下,我们可能需要在ListView的每一项(item)中添加复选框(checkBox),以供用户进行多选操作,例如选择联系人、设置偏好等。本程序就是针对这种需求,实现了在ListView的每个item右侧添加复选框,并且...

    android ListView子控件监听

    当子项中包含可选的复选框(CheckBox)或切换按钮(Switch)时,可以使用CompoundButton的CheckedChangeListener来监听它们的状态变化: ```java CheckBox checkBox = viewHolder.checkBox; checkBox....

    listview item点击事件冲突问题

    然而,在实际操作中,开发者经常会遇到ListView项(item)的点击事件冲突问题,这可能会导致用户体验下降或者功能出现异常。这个问题主要体现在两个方面:一是单个item的点击事件无法正常触发,二是点击事件与其它...

    复选框多选Demo

    在多选Demo中,如果单选按钮用于切换全选/全不选功能,那么需要监听单选按钮的改变事件,并相应地更新所有复选框的状态。 5. **Adapter与ViewHolder**: 实现复选框多选功能通常结合ListView、RecyclerView等滚动...

Global site tag (gtag.js) - Google Analytics