在ListView中,每次彈出軟鍵盤后就會重新調(diào)用getView()方法,導(dǎo)致EditText失去焦點右钾。
解決辦法:在getView()方法中添加監(jiān)聽器:
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
index = position;
}
return false;
}
});
并且在getView方法結(jié)束前為EditText添加焦點:
editText.clearFocus();
if (index != -1 && index == position) {
// 如果當前的行下標和點擊事件中保存的index一致鹉究,手動為EditText設(shè)置焦點。
editText.requestFocus();
}
但是這樣诸蚕,又會有新的問題出現(xiàn)步势,EditText中的光標停在最前面,并且不閃動背犯,點擊軟鍵盤輸入任何東西也不會在EditText中顯示坏瘩,這樣,就要在EditText獲得焦點后再做一個處理:
editText.setSelection(editText .getText().length());