首页
学习
活动
专区
圈层
工具
发布

关于ListView中包含EditText数据复用引起异常的解决方案

概述 前几天测试提了一个bug,在ListView中添加留言信息,导致错乱的问题。实际上就是ListView需要添加一个EditText,复用导致错乱的问题,这个问题以前也遇到过。...诸如,ListView嵌套EditText、CheckBox等焦点问题都会出现复用的错乱,其根源就是ViewHolder的复用问题。 ?...说说上面的问题吧,保存item中EditText中的数据,导致数据复用的时候都给设置了值。...添加一项控件 edItem.put(edindex, "edindex"); } return false...; } }); 但是这里出现了一个问题,由于复用,导致,每一个Item都被赋值了,所以我们要解决这个问题得从源头阻断给EditText赋值,也就是在OnTextChange

1.9K90
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    EditText在RecyclerView中的解决方案

    有时候,一个列表中的Item会有EditText的出现,而由于View复用机制,如果不好好处理EditText,将会出现一些问题。...菜是原罪 EditText在RecyclerView中的问题 例子是这样的,每个Item包含一个title、一张图片以及一个评分,这个评分就是通过输入框来输入的。...原来是因为这里是addTextWatcher,而不是setTextWatcher,也就是在复用的时候,同一个EditText添加了多个TextWatcher,怪不得分数9还能出现在上面了。...首先我是试了一个,removeTextWatcher的方法,那就是在Adapter的detachViewHolderFromWindow方法中移除TextWatcher,如下: class PicAdapter...很简单,在updateView(),也就是bind过程中每次去更新PicItem就可以了。

    3.4K20

    textview可复制_长按复制是怎么做的

    前段时间因为项目需求实现TextView长按复制的功能,特意上百度差了一下有不少实现这个功能的方法,隔了好久也怕忘了,总结一下: 先推荐目前感觉最好用的方法: 在布局文件的TextView控件属性中增加一句话...不过现在的版本这个应该也不成问题了 xml文件中可以设置之外,在java代码上也可以一句话设置: TextView tv = new TextView(context); tv.setTextIsSelectable..."粘贴"即可 cm.getText();//获取粘贴信息 2、使用EditText,和TextView一样在xml里面直接加一句话android:editable=”false” 可以实现,不过需要注意...,使用EditText的话需要设置一个背景色,或者设置空也行,缺点是不能在java代码中动态设置。...被编辑 return false; } } 其中关键的一个方法是getDefaultEditable(),,return false;即禁止EditText被编辑,变成了不可编辑的EditText,

    2.3K20

    android studio输出文字_androiditem长按删除

    用EditText 实现 textView 长按复制效果,edittexttextview 首先 EditText 是集成 TextView 的 我们直接将?...EditText 设置为不可编辑来实现 其中重点为: android:background=”@null”//背景设为null,去掉editText下划线 android:textCursorDrawable...=”@null”//游标设为null,去掉游标 android:editable=”false”//不可编辑 android:textIsSelectable=”true”//文字内容可选 有时候可能会遇到...实现 textView 长按复制效果,edittexttextview 首先 EditText 是集成 TextView 的 我们直接将?...EditText 设置为不可编辑来实现 其中重点为:… 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    78310

    android 复制控件,Android长按复制文本功能

    安卓一般能用到长按复制的控件Textview,Editext,可能也有WebView 在开始之前先说一个我遇到的一个坑: viewGroup中有一个这个属性android:descendantFocusability...android:layout_height=”match_parent” android:layout_weight=”2″ android:background=”@null”//背景设为null,去掉editText...下划线 android:editable=”false”//不可编辑 android:textIsSelectable=”true”//文字内容可选 android:gravity=”right|center_vertical...textIsSelectable这个属性: android:textIsSelectable=”true” Webview webview在加载链接之前想长按复制链接,其实原理也还是现获取webview...要加载的内容然后把它复制到剪贴板 获取选中的内容要调用webView中的未公开函数getSelection 因此通过反射: Method m = WebView.class.getMethod(“getSelection

    2.1K20

    高仿微信双击消息弹出可自由复制

    下面,跟随 LZ 一起来实现这个效果~ 炒个栗子 首先,最方便,最省事儿的,当然是调用系统提供的方式,那么在 Android 中,TextView 和 EditText 都为我们提供了这么一个属性,用于支持自由复制...: android:textIsSelectable="true" 使用 EditText 还得处理焦点等等,索性直接采用 TextView,布局 xml 代码如下: <?...return true; } } return false...嚼吧嚼吧 这里说说 LZ 之前写的过程中遇到的坑点,一起来看~ 1、 TextView 长按事件和单击事件冲突,也不能说是完全冲突,只是轻触滑动时,会调用到之前 LZ 写的 onClick() 方法中...3、 原打算使用 ScrollView 嵌套 TextView 或者在 TextView 上再包裹一层,最后想想没必要,一个层级能搞定的事儿,没必要增加无用层级。

    1.3K20

    List.append() 在 Python 中不起作用,该怎么解决?

    在 Python 中,我们通常使用 List.append() 方法向列表末尾添加元素。然而,在某些情况下,你可能会遇到 List.append() 方法不起作用的问题。...问题描述虽然 List.append() 方法通常在 Python 中运行良好,但在某些情况下,它可能无法正常工作。以下是一些可能导致 List.append() 方法不起作用的情况:1....变量重新赋值在 Python 中,列表是可变对象,也就是说,它们可以通过引用进行修改。...列表作为函数参数另一个导致 List.append() 方法不起作用的常见情况是将列表作为函数的参数传递。在 Python 中,函数参数传递是通过对象引用实现的。...结论List.append() 方法在 Python 中通常是一个方便且常用的方法,用于向列表末尾添加元素。然而,当遇到某些情况时,它可能不起作用。

    6K20

    TextView AutoLink, ClikSpan 与长按事件冲突的解决

    从代码中可以看出,在构造方法中,获取 autoLink 属性在 xml 中定义的值,储存在 mAutoLinkMask 成员变量中。...因此,ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的,跟我们的长按事件没半毛钱关系。...重要的事情说三遍 ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的 ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的...ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的 知道了 ClickableSpan 的 onClick 方法是在 ACTION_UP 事件中调用的,下面让我们一起来看一下怎样解决...多记录,多总结,有时候,你也会发现,在写代码 “枯燥” 的过程中,也许多了一点“乐趣"。

    2.2K20

    在匹配过程中为什么将 found 重置为 False?

    在匹配过程中,将 found 变量重置为 False 通常用于循环或递归结构中以重新初始化某些状态。...2、解决方案found = False 的赋值语句用于在每次循环迭代结束后,将 found 变量重置为 False。...这是因为在新一轮迭代开始时,需要确保 found 变量为 False,以确保程序能够正确地根据用户输入的查询条件查找匹配项。...found 变量在每次循环迭代结束后都重置为 False,因此程序能够正确地根据用户输入的查询条件查找匹配项,并在页面上显示找到的结果。...在某些逻辑中,我们可能希望在每次匹配后返回是否找到。如果在某一轮次没有匹配成功,可以通过 found = False 表明该轮次未找到。这种方式在需要记录每次匹配状态的算法中非常常见。

    64310

    笔记22 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(三)

    1.前言 整理学习”Android动画效果集合开源APP(BaseAnimation)程序源码“中的通讯录效果。...,根据触摸的区域和字母高度的计算出position,再向联系人Listview提供一个方向输出position值!...>笔记20 | 学习整理开源APP(BaseAnimation)程序源码“中的通讯录效果(一) ---- 3.2 通讯录界面ListView的数据填充 加载联系人的方法容易理解,排序》加载》处理 >笔记...textchange的监听,然后进行匹配>筛选>排序>加载到联系人列表中。...* 当我们按下的位置 在 EditText的宽度 - 图标到控件右边的间距 - 图标的宽度 和 * EditText的宽度 - 图标到控件右边的间距之间我们就算点击了图标,竖直方向没有考虑

    85840
    领券