listview 中edittext无法调出输入框

来源:互联网 发布:mac 普通鼠标左右 编辑:程序博客网 时间:2024/05/29 13:03

在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());
0 0
原创粉丝点击