二、Android 解决在ListView历史复用中Edittext数据显示混乱
来源:互联网 发布:淘宝11.11抢拍技巧 编辑:程序博客网 时间:2024/04/27 13:28
二、ListView的子项中包含EditText,由于复用引起的Editext中的内容显示异常的解决方案
转至 http://blog.csdn.net/dream_remote/article/details/44262361
这是小生的第一篇博文。萌发写博客的念头并不是一时的脑热,早在上大学的时候就有写写博客的想法,由于那时没有一点经历,这想法也就胎死腹中。算下来,真正开始工作也已经有半年了,在网上看到各种达人的文章,受益匪浅,于是,决定自己也开始写博客。不求太多回报,只希望能将自己学到的东西与大家一起分享下,如果,自己的某个想法能帮助到别人,那真是我莫大的幸福了。好了,废话到此,开正文。
最近做的一个项目需要在ListView的子项中添加一个EditText组件,不必说,为了解决ListView的复用问题又要请Map同学帮忙了,平时遇到的TextView,ImageView,CheckBox等等这些组件只用在Map中记录下它们的状态或者内容就可以轻松解决复用问题,但EditText却另当别论,首先,EditText需要实时保存其中输入的内容,并且在它再次出现的时候其上应有的内容需要被正确复现;再者,Editext与别的组件另外不同的一点是,它还存在焦点的问题,由于复用的存在,焦点可能会同时落在多个EditText上!是一个很有意思的问题。为了保存EditText上输入的数据,需要在其上注册OnTextChangedListener监听事件,并在afterTextChanged()中写入存储操作,当EditText再次被显示出来时,在getView()中为EditText加上之前存储好的值,第一个问题感觉已经完美的解决了。但事情远没有那么简单,由于复用产生的焦点问题,你在操作这个EditText时,下面看不见的地方的EditText的监听也在偷偷运行的,等你输入完了再一滚动,就乱七八糟了。所以,必须解决焦点问题。我的方案是这样的:在Adapter中写两个内部类,它们分别继承于TextWatcher和OnFocusChangeListener,在EditText上分别注册上OnFocusChangeListener和OnTextChangedListener监听,通过OnFocusChangeListener监听事件,动态的改变TextWatcher,使它始终只作用在真正获得焦点的EditText上,这是大概思路。上代码了,只有Adapter部分。
- Android 解决在ListView历史复用中Edittext数据显示混乱
- Android 解决在ListView历史复用中Edittext数据显示混乱
- 二、Android 解决在ListView历史复用中Edittext数据显示混乱
- Android中解决在ListView历史复用中Edittext数据显示混乱
- Android 解决在ListView历史复用中数据显示混乱
- 一、Android 解决在ListView Item 中Edittext数据显示混乱
- Android 解决ListView里面多套布局多个EditText数据混乱问题
- 解决ListView中包含EditText数据混乱原理
- Android ListView 数据混乱
- 轻松解决listView数据混乱
- Android Listview显示混乱问题
- ExpandableListView、ListView EditText 输入数据混乱的问题
- Android 根据EditText搜索框ListView动态显示数据
- Android 根据EditText搜索框ListView动态显示数据
- Android 根据EditText搜索框ListView动态显示数据小结
- Android 根据Edittext内容动态改变Listview显示的数据
- Android 根据EditText搜索框ListView动态显示数据
- Android 解决ListView中有EditText时,数据丢失问题
- linux 命令行播放音乐
- jquery类选择器/基于下标的选择器/层次选择器的使用场景
- 8-求倒数和
- 【MySQL】Inception备份库表数据中文乱码解决
- Codeforces Round #377 (Div. 2) A. Buy a Shovel
- 二、Android 解决在ListView历史复用中Edittext数据显示混乱
- Android Fragment 真正的完全解析(下)
- RMSwitch
- webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器
- libevent学习笔记【使用篇】——9. Libevent和DNS解析
- [Kafka-users] Producer not distributing across all partitions
- 当你迷茫时,请努力做好现在的工作
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- bootstrap nav nav-tabs 选项卡 的使用实例