Android基础之EditText在ListView中的使用

前段时间项目中使用Listview,条目中用到了EditText,遇到了两个问题,看了别人的思路终于解决了.第一个问题是:Edittext失去焦点的问题;第二个是,数据丢失的问题;


右侧---为Edittext

1.先看焦点丢失的问题

原因:当我们点击了Edittext之后,键盘弹出,同时Listview也会重新绘制,导致Edittext的焦点丢失.

那么,知道原因我们就能找到解决这个焦点丢失的问题.

我们可以用一个变量记录当前获取焦点的Edittext对应的位置.

//定义成员变量mTouchItemPosition,用来记录手指触摸的EditText的位置

private  int itemEditTextPosition=0;// 这里默认是选中了第一个位置

此外,看下图,适配器中需要添加如下代码

适配器中添加如下操作

.调用setTag的方法给Edittext设置对应的position,然后监听触摸事件,获取触摸的Edittext对应的位置.

判断若当前position等于记录的获取到焦点的Edittext对应位置,那么就让该EditText获取到焦点,并且将光标位于字符串末尾.

2.第二个问题,数据丢失的问题,解决此办法,我偷懒了,我是直接监听了Edittext;

如下图所示,我在text变化的时候,记录该值;在结束的时候刷新了数据;这种方法,虽然可以解决问题,但是性能上肯定是有待提高,所以有好的办法,麻烦请告知我一下,谢谢.

第二张图片

迫切希望告知好的方法,可以提升性能,谢谢.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,170评论 25 709
  • 简介 在Android开发中ListView是比较常用的组件。 以列表的形式展示具体内容。 并且能够根据数据的长度...
    上善若水Ryder阅读 11,859评论 2 5
  • 明天就是高考了,看到很多新闻在报道,朋友圈也有爱心宣传,提醒大家开车要让行,不要鸣笛。 很多送考的家长很辛苦,可怜...
    他说他的不说阅读 1,216评论 1 1
  • 青砖旧瓦老鸭 稻草团上作家 年迈已无小鸭 骨瘦菜肴不佳 此生侍此人家 临老得以安家
    许储依阅读 2,801评论 17 5

友情链接更多精彩内容