最近用到需要自己寫乙個輸入的介面,這就需要隱藏掉系統預設的輸入法彈出來了。
要隱藏輸入法,有幾種方式:
上面2中方法只是執行乙個就隱藏一次系統的輸入法,當edittext獲取焦點之後還是會調出來的。但是筆者需要實現的是edittext獲取焦點的時候不彈出來,輸入的時候也不彈出來,後來發現edittext中有乙個方法setshowsoftinputonfocus
但是該方法是隱藏的。但是該方法實在2.3以後的sdk才出現的,如果要相容2.3版本,只需要呼叫:et.setinputtype(inputtype.type_null)
,回到正常情況下,我們需要用到反射來呼叫setshowsoftinputonfocus
,**如下:
class
cls = edittext.class;
method
setsoftinputshownonfocus;
setsoftinputshownonfocus = cls.getmethod(methodname,boolean.class);
setsoftinputshownonfocus.setaccessible(true);
setsoftinputshownonfocus.invoke(et, false);
這樣就隱藏了,但是edittext的游標還存在,達到了要求,但是筆者滿心歡喜跑在真機上面,並沒有效果,鍵盤還是會彈出來,真機是4.0.4,模擬器是4.1.2 ,後來再查資料,才發現4.0 和4.1.2的sdk中該方法名稱改了,4.0-4.1.2是用setsoftinputshownonfocus
4.1.2之後是用setshowsoftinputonfocus
這兩個方法相當相似。
完整的**如下:
int currentversion = android.os.build.version.sdk_int;
string methodname = null;
if (currentversion >= 16) else
if (currentversion >= 14)
if (methodname == null) else catch (exception e)
}
最後完美實現了自定義的輸入法。 android軟鍵盤隱藏總結
1 軟鍵盤的狀態 隱藏或顯示。一 自動彈出軟鍵盤 timer timer new timer timer.schedule new timertask 2000 二 軟鍵盤 activity中設定 android windowsoftinputmode stateunspecified 預設設定 軟...
Android隱藏軟鍵盤的方法
1.隱藏軟鍵盤的方法 1 在mainfest檔案中把對應的activity設定android windowsoftinputmode statehidden 或者android windowsoftinputmode stateunchanged 2 可以在布局中放乙個隱藏的textview,然後在...
Android 隱藏 顯示軟鍵盤方法
隱藏軟鍵盤的終極方法 public class softkeyboardutil 隱藏軟鍵盤 可用於activity,fragment public static void hidesoftkeyboard context context,list viewlist 那 softkeyboardut...