系統(tǒng)鍵盤 包含普通鍵盤和現(xiàn)在很多ROM定制的密碼安全鍵盤
調(diào)用已下方法即可解決:
https://developer.android.google.cn/reference/android/widget/TextView#setShowSoftInputOnFocus(boolean)
但是,此方法是API 21Android 5.0加入的, 所以為了兼容低版本, 建議使用已下方法:
?public static final boolean notShowSoftInput(EditText editText) {
? ? ? boolean flag = false;
? ? ? InputMethodManager imm = (InputMethodManager) editText.getContext()
? ? ? ? ? ? ? .getSystemService(Context.INPUT_METHOD_SERVICE);
? ? ? boolean isOpen = imm.isActive();// isOpen若返回true,則表示輸入法打開
? ? ? if (isOpen) {
? ? ? ? ? if (imm.hideSoftInputFromWindow(editText.getWindowToken(), 0))
? ? ? ? ? ? ? flag = true;
? ? ? }
//?? ??? ?act.getWindow().setSoftInputMode(
//?? ??? ??? ??? ?WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
? ? ? int currentVersion = android.os.Build.VERSION.SDK_INT;
? ? ? String methodName = null;
? ? ? if (currentVersion >= 16) {
? ? ? ? ? // 4.2
? ? ? ? ? methodName = "setShowSoftInputOnFocus";
? ? ? } else if (currentVersion >= 14) {
? ? ? ? ? // 4.0
? ? ? ? ? methodName = "setSoftInputShownOnFocus";
? ? ? }
? ? ? if (methodName == null) {
? ? ? ? ? editText.setInputType(InputType.TYPE_NULL);
? ? ? } else {
? ? ? ? ? Class<EditText> cls = EditText.class;
? ? ? ? ? Method setShowSoftInputOnFocus;
? ? ? ? ? try {
? ? ? ? ? ? ? setShowSoftInputOnFocus = cls.getMethod(methodName,
? ? ? ? ? ? ? ? ? ? ? boolean.class);
? ? ? ? ? ? ? setShowSoftInputOnFocus.setAccessible(true);
? ? ? ? ? ? ? setShowSoftInputOnFocus.invoke(editText, false);
? ? ? ? ? } catch (NoSuchMethodException e) {
? ? ? ? ? ? ? editText.setInputType(InputType.TYPE_NULL);
? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? } catch (IllegalAccessException e) {
? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? } catch (IllegalArgumentException e) {
? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? } catch (InvocationTargetException e) {
? ? ? ? ? ? ? e.printStackTrace();
? ? ? ? ? }
? ? ? }
? ? ? return flag;
? }
4.2低版本中有一個setSoftInputShownOnFocus方法, 但是被聲明成hide了, 所以通過反射調(diào)用.
再低一點的版本,直接通過setInputType的方式兼容.
以上方法調(diào)用后, EditText獲取到焦點時,就不會彈出系統(tǒng)的鍵盤了.
然后彈出自定義的鍵盤,就可以完美解決沖突了.
翻譯
搜索文章來源:http://www.zghlxwxcb.cn/news/detail-846920.html
復(fù)制文章來源地址http://www.zghlxwxcb.cn/news/detail-846920.html
到了這里,關(guān)于EditText不顯示系統(tǒng)鍵盤,可用來顯示自定義的鍵盤的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!