1. 程式人生 > >關於 edittext 軟鍵盤退出監聽解決方法

關於 edittext 軟鍵盤退出監聽解決方法

當前需求:軟鍵盤消失就當做輸入完成

安卓系統沒有自帶的監聽軟鍵盤消失的方法

直接通過監聽是否獲取監聽聚焦OnFocusChange,同時使用

OnFinishComposingListener作為是否完成輸入,完成之後馬上呼叫clearFocus

此時OnFocusChange會進行回撥,此時就完成監聽輸入完成

 edittext 有個onCreateInputConnection 的方法,通過它可以自定義一個輸入法聯結器,那裡聯結器裡面有個方法(finishComposingText)能監聽輸入完成的動作原文參考自站長網:.

  Java程式碼  

  1. public class MyEditText extends EditText{  
  2.         public MyEditText(Context context) {  
  3.                 super(context);  
  4.         }   
  5.         private OnFinishComposingListener mFinishComposingListener;  
  6.         public void setOnFinishComposingListener(OnFinishComposingListener listener){  
  7.                 this.mFinishComposingListener =listener;  
  8.         }   
  9.         @Override  
  10.         public InputConnection onCreateInputConnection(EditorInfo outAttrs) {  
  11.                 return new MyInputConnection(super.onCreateInputConnection(outAttrs), false);  
  12.         }    
  13.         public class MyInputConnection extends InputConnectionWrapper {  
  14.                 public MyInputConnection(InputConnection target, boolean mutable) {  
  15.                         super(target, mutable);  
  16.                 }  
  17.                 @Override  
  18.                public boolean finishComposingText() {  
  19.                         boolean finishComposing = super.finishComposingText();  
  20.                         if(mFinishComposingListener != null){  
  21.                                 mFinishComposingListener.finishComposing();  
  22.                         }  
  23.                         return finishComposing;  
  24.                 }  
  25.         }     
  26.         public interface OnFinishComposingListener{  
  27.                 public void finishComposing();  
  28.         }  
  29. }