Android中EditText无法再次获得焦点

一开始以为是获取到焦点之后软键盘没办法跳出的原因,添加了以下事件监听

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

posted @ 2016-03-27 14:46  艳鬼  阅读(690)  评论(0编辑  收藏  举报