Android 隱藏軟鍵盤的方式

2021-07-07 02:26:09 字數 1181 閱讀 6651

最近用到需要自己寫乙個輸入的介面,這就需要隱藏掉系統預設的輸入法彈出來了。

要隱藏輸入法,有幾種方式:

上面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...