• 关于ListView中EditText在软键盘弹出后的焦点问题


    转自:http://www.cnblogs.com/haofei/p/3305030.html

    在ListView中,每次弹出软键盘后就会重新调用getView()方法,导致EditText失去焦点。

    解决办法:在getView()方法中添加监听器:

    editText.setOnTouchListener(new OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_UP) {
                        index = position;
                    }
                    return false;
                }
            });

    并且在getView方法结束前为EditText添加焦点:

    editText.clearFocus();
            if (index != -1 && index == position) {
                // 如果当前的行下标和点击事件中保存的index一致,手动为EditText设置焦点。
                   editText.requestFocus();
            }

    但是这样,又会有新的问题出现,EditText中的光标停在最前面,并且不闪动,点击软键盘输入任何东西也不会在EditText中显示,这样,就要在EditText获得焦点后再做一个处理:

    editText.setSelection(editText .getText().length());

    这样,问题就很好的解决了。

  • 相关阅读:
    不同的二叉搜索树
    二叉树展开为链表
    二叉树的中序遍历
    二叉树的直径
    树系列之对称二叉树
    从前序与中序遍历序列构造二叉树
    字符串反转
    旋转图像---二维矩阵
    双指针---最接近的三数之和
    Egret 小游戏实战教程 跳一跳(搬运二)
  • 原文地址:https://www.cnblogs.com/ycxyyzw/p/4150436.html
Copyright © 2020-2023  润新知