软键盘关闭后,编辑文字光标是否继续闪烁,或者是由仿真器进行测试而不会在实际设备上发生? – 正如
this discussion年的第二篇文章所指出的那样
更新:
我知道edittexts仍然有光标闪烁,因为它们仍然在焦点 – 每当edittext丢失焦点时记录消息,但是当软键盘关闭时,消息从未被记录.
更新:
我试过:
@Override public void onBackPressed() { super.onBackPressed(); getCurrentFocus().clearFocus(); }
所以每次键盘关闭时,目前处于对焦状态的EditText都会丢失该焦点,并调用onFocusChanged().问题是当键盘启动时按下后退按钮时,不会调用onBackPressed().我知道这是因为我在onBackPressed()中放了一个烤面包,而当键盘启动时按下后退按钮时,没有烤面包片显示.
解决方法
首先创建自定义编辑文本.以下是按下键盘背面关闭键盘时回拨的示例
public class EdittextListner extends EditText { private KeyImeChange keyImeChangeListener; public EdittextListner(Context context,AttributeSet attrs) { super(context,attrs); } public void setKeyImeChangeListener(KeyImeChange listener) { keyImeChangeListener = listener; } public interface KeyImeChange { public boolean onKeyIme(int keyCode,KeyEvent event); } @Override public boolean onKeyPreIme(int keyCode,KeyEvent event) { if (keyImeChangeListener != null) { return keyImeChangeListener.onKeyIme(keyCode,event); } return false; }
}
其次在您的布局文件中将EditText更改为EdittextListner.
最后做以下
mLastNameEditText.setKeyImeChangeListener(new EdittextListner.KeyImeChange() { @Override public boolean onKeyIme(int keyCode,KeyEvent event) { mLastNameEditText.clearFocus(); return true; } });
这对我有用希望这可以帮助