Android EditTextフォーカスを取得した後、カーソルだけを表示してソフトキーボードをイジェクトしない
2850 ワード
Android EditTextフォーカスを取得した後、カーソルだけを表示してソフトキーボードをイジェクトしない
参考ブログリンク
直接結論を述べる.
プロジェクトの最小バージョンが21以上であれば
プロジェクトの最小バージョンが21未満の場合
ブログのコード分析を参照
Activityの起動時にソフトキーボードをイジェクトしない設定このActivityは、
参考ブログリンク
直接結論を述べる.
プロジェクトの最小バージョンが21以上であれば
// EditText , false
binding.newPesticideEditCodeEt.setShowSoftInputOnFocus(false);
プロジェクトの最小バージョンが21未満の場合
public void disableShowInput(EditText et) {
Class cls = EditText.class;
Method method;
try {
method = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
method.setAccessible(true);
method.invoke(et, false);
} catch (Exception e) {//TODO: handle exception
}
}
ブログのコード分析を参照
public void disableShowInput(EditText et) {
Class cls = EditText.class;
Method method;
try {
//setShowSoftInputOnFocus EditText TextView
// EditText
method = cls.getMethod("setShowSoftInputOnFocus", boolean.class);
method.setAccessible(true);
method.invoke(et, false);
} catch (Exception e) {//TODO: handle exception
}
try {
// , , EditText ,TextView ,View ,
// setSoftInputShownOnFocus , method
method = cls.getMethod("setSoftInputShownOnFocus", boolean.class);
method.setAccessible(true);
method.invoke(et, false);
} catch (Exception e) {//TODO: handle exception
}
}
Activityの起動時にソフトキーボードをイジェクトしない設定
Manifests
ファイルで次のように設定されています.android:windowSoftInputMode="stateAlwaysHidden"