一开始以为是获取到焦点之后软键盘没办法跳出的原因,添加了以下事件监听
validateCodeEditText.setOnFocusChangeListener(new android.view.View.OnFocusChangeListener() {
InputMethodManager imm =(InputMethodManager)validateCodeEditText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
@Overridepublic void onFocusChange(View v, boolean hasFocus){
if (hasFocus) {
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
} else { imm.hideSoftInputFromWindow(validateCodeEditText.getWindowToken(),0);
} }});
后来发现是在validateCodeEditText.setFocusable(false);之后,再次获取焦点要使用以下语句
validateCodeEditText.setFocusable(true);
validateCodeEditText.setFocusableInTouchMode(true);
validateCodeEditText.requestFocus();
validateCodeEditText.findFocus();