Android基础之EditText在ListView中的使用

作者: 正阳Android | 来源:发表于2017-11-09 15:28 被阅读92次

    前段时间项目中使用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变化的时候,记录该值;在结束的时候刷新了数据;这种方法,虽然可以解决问题,但是性能上肯定是有待提高,所以有好的办法,麻烦请告知我一下,谢谢.

    第二张图片

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

    相关文章

      网友评论

        本文标题:Android基础之EditText在ListView中的使用

        本文链接:https://www.haomeiwen.com/subject/awapmxtx.html