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

在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());

你可能感兴趣的:(关于ListView中EditText在软键盘弹出后的焦点问题)