问题背景:使用适配器显示一个列表,列表中Item中有EditText,滚动时会有EditText组件内容消失

步骤:

1. 在Adapter中,添加interface

public interface OnEidtTextChangeListener {
void xxxTextChanged(CharSequence s, int start, int before, int count);
void getXxxEditedCount();
} private OnEidtTextChangeListener mOnEidtTextChangeListener; public void setOnEidtTextChangeListener(OnEidtTextChangeListener mOnEidtTextChangeListener) {
this.mOnEidtTextChangeListener = mOnEidtTextChangeListener;
}

2. 在XXXAdapter类中 实现自定义TextWatcher,

class XXXEditTextWatcher implements TextWatcher {

		private XXXAdapter.ItemViewHolder holder;
//传入对应的ViewHolder
public XXXEditTextWatcher(XXXAdapter.ItemViewHolder holder) {
this.holder = holder;
} @Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (mOnEidtTextChangeListener != null) {
mOnEidtTextChangeListener.xxxTextChanged(s, start, before, count);
}
} @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override
public void afterTextChanged(Editable editable) {
//通过ViewHolder,获取对应控件设置的tag,tag为当前的位置,即数据的position,获取适配器的数据list改变 XXX 的内容
int position = (Integer) holder.etXXX.getTag();
if (mList.size() > position) {
mList.get(position).setXXX(editable.toString());
}
// 获取当前显示的item的index
if (mList.size() > 0) {
if (mOnEidtTextChangeListener != null) {
mOnEidtTextChangeListener.getXxxEditedCount();
}
}
}
}

3. 在onBindViewHolder中,组件设定tag以便于后续获取position,

holder.etXXX.setTag(position);
holder.etXXX.setText(mList.get(position).getXxx());
holder.etXXX.addTextChangedListener(new XXXEditTextWatcher(holder));

Android Adapter中组件EditText文本变化监听 addTextChangedListener的更多相关文章

  1. Android View中的控件和监听方法...

    PS:居然三天没写博客了...今天补上...东西虽多,但是都是一些基础...代码多了一些,有人可能会这样问,粘这么多代码有毛用..其实对于一个Android的初学者来说,一个完整的代码是最容易帮助理解 ...

  2. React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路

    React 函数组件中对window添加事件监听resize导致回调不能获得Hooks最新状态的问题解决思路 这几天在忙着把自己做的项目中的类组件转化为功能相同的函数组件,首先先贴一份该组件类组件的关 ...

  3. Android中Button的五种监听事件

    简单聊一下Android中Button的五种监听事件: 1.在布局文件中为button添加onClick属性,Activity实现其方法2.匿名内部类作为事件监听器类3.内部类作为监听器4.Activ ...

  4. Android EditText截获与监听输入事件

      Android EditText截获与监听输入事件共有2种方法: 1.第一种方法:使用setOnKeyListener(),不过这种方式只能监听硬键盘事件. edittext.setOnKeyLi ...

  5. Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听

    原文:Android TV开发中所有的遥控器按键监听及注意事项,新增home键监听 简单记录下android 盒子开发遥控器的监听 ,希望能帮到新入门的朋友们 不多说,直接贴代码 public cla ...

  6. DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

    前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...

  7. vue2.x版本中Object.defineProperty对象属性监听和关联

    前言 在vue2.x版本官方文档中 深入响应式原理 https://cn.vuejs.org/v2/guide/reactivity.html一文的解释当中,Object.defineProperty ...

  8. vue中给window添加滚动监听无效的解决方案

    原文链接: 点我 页面中有这么一个需求,当页面滚动到一定高度之后,页面中的某些元素进行吸顶,固定到顶部位置,或者是滚动到一定程度进行更新数据的操作.我相信不少网友查阅过类似的资料,网友给出的解决方案, ...

  9. JavaEE开发之Spring中的事件发送与监听以及使用@Profile进行环境切换

    本篇博客我们就来聊一下Spring框架中的观察者模式的应用,即事件的发送与监听机制.之前我们已经剖析过观察者模式的具体实现,以及使用Swift3.0自定义过通知机制.所以本篇博客对于事件发送与监听的底 ...

  10. IE浏览器的脚本文本框监听事件

    一.IE8的文本框监听事件 由于在IE8所以input和propertychange都不能用,终于皇天不负有心人让我找到了这个:https://github.com/sophiebits/jquery ...

随机推荐

  1. Power BI进阶秘籍,干货满满!如何将度量值转化为切片器(动态切换分析指标),实操指南来了!

    Power BI进阶秘籍,干货满满!如何将度量值转化为切片器(动态切换分析指标),实操指南来了!   想要在Power BI中让度量值也能像维度一样灵活筛选?没问题,这里就为你揭秘如何将度量值转化为切 ...

  2. ffmpeg -使用总结

    ffmpeg 使用总结,不定期更新 ---------------------------------------- 1. 将截图合成影片: ffmpeg -i ./shot/%d.tiff -thr ...

  3. SpringBoot目录文件结构和官方推荐的目录规范、静态资源访问

    目录讲解 src/main/java:存放代码 src/main/resourcces static:存放静态文件,比如css.js.image,(访问方式:http://localhost:8080 ...

  4. 一位有着近 10 年 iOS 开发经验的全职爸爸如何高效管理时间?

    名字: Mindr 开发者 / 团队: Florian Vates 平台: iOS, iPadOS, Android 正在开发中 请简要介绍下这款产品 有没有发现自己总是不断推迟待办事项的通知? Mi ...

  5. 常用IDE(开发工具)

    一.开发工具 Visual Studio Microsoft Visual Studio(简称VS)是微软公司提供的IDE,可以在VS上编写C.C++.C#等多种语言的项目,所写的代码适用于微软支持的 ...

  6. Using temporary与Using filesort

    Using temporary Using temporary表示由于排序没有走索引.使用union.子查询连接查询.使用某些视图等原因(详见https://dev.mysql.com/doc/ref ...

  7. oeasy教您玩转vim - 24 - 自定颜色

    自定颜色 回忆上节课内容 这次我们研究了配色方案 找到了 colors 的位置 下载并应用了颜色方案 制作了自己的配色方案 下面我想修改配色方案的颜色 是否能成功??? 首先得有自己的颜色方案 #找到 ...

  8. [oeasy]python0014_二进制_binary_bin

    ​ 二进制(binary) 回忆上次内容 上次我们了解了​​ASCII​​码表 ​ASCII​​ 码表就是 ​​A​​merican ​​S​​tandard ​​C​​ode for ​​I​​nf ...

  9. [oeasy]python0007-调试程序_debug

    ​ 调试程序 回忆上次内容 ​py​​ 的程序是按照顺序执行的 是一行行挨排解释执行的 程序并不是数量越多越好 kpi也在不断演化 ​ 编辑 写的代码越多 出现的bug就越多 什么是bug 如何找bu ...

  10. UE5打包后,无法切换关卡的问题

    首先是普通的会遇到的问题,比如多个Level不在同一目录,或者不在默认的Maps目录打包不成功这时候要设置,Project Settings-> Packaging 上面保证没问题之后,打包发现 ...