關於 edittext 軟鍵盤退出監聽解決方法
阿新 • • 發佈:2019-01-31
當前需求:軟鍵盤消失就當做輸入完成
安卓系統沒有自帶的監聽軟鍵盤消失的方法
直接通過監聽是否獲取監聽聚焦OnFocusChange,同時使用
在OnFinishComposingListener作為是否完成輸入,完成之後馬上呼叫clearFocus
此時OnFocusChange會進行回撥,此時就完成監聽輸入完成
edittext 有個onCreateInputConnection 的方法,通過它可以自定義一個輸入法聯結器,那裡聯結器裡面有個方法(finishComposingText)能監聽輸入完成的動作原文參考自站長網:.
Java程式碼
- public class MyEditText extends EditText{
- public MyEditText(Context context) {
- super(context);
- }
- private OnFinishComposingListener mFinishComposingListener;
- public void setOnFinishComposingListener(OnFinishComposingListener listener){
- this.mFinishComposingListener =listener;
- }
- @Override
- public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
- return new MyInputConnection(super.onCreateInputConnection(outAttrs), false);
- }
- public class MyInputConnection extends InputConnectionWrapper {
- public MyInputConnection(InputConnection target, boolean mutable) {
- super(target, mutable);
- }
- @Override
- public boolean finishComposingText() {
- boolean finishComposing = super.finishComposingText();
- if(mFinishComposingListener != null){
- mFinishComposingListener.finishComposing();
- }
- return finishComposing;
- }
- }
- public interface OnFinishComposingListener{
- public void finishComposing();
- }
- }