最初のフィールドがEditTextである画面があり、起動時にフォーカスを取得し、数値入力タイプもポップアップします。これは非常に迷惑です
アクティビティが開始されたときにフォーカスが得られないこと、および/または入力パネルが上げられないことを確認するにはどうすればよいですか?
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
または
アプリケーションタグでマニフェストファイルのアクティビティプロパティを以下のように設定します
Android:windowSoftInputMode="stateHidden"
アプリケーションマニフェストファイルに移動し、自動キーボードポップアップを無効にするアクティビティのこの行を記述します。
Android:windowSoftInputMode="stateHidden"
プログラムでキーボードを表示せずに、デフォルトのウィジェットでフォーカス呼び出しを受信するには:
getWindow().setSoftInputMode(WindowManager.
LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
onResume()
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
上記のメソッドをonCreate()内で呼び出します。これにより、softKeyboardユーザーが
tapping or clicking.
でEditTextを選択しない限り
または、Android:windowSoftInputMode="stateHidden"
のActivityタグにManifest.xml
を追加するだけです
これは通常混乱です。私が最初に試みることは、別のビューでを介してフォーカスを盗もうとすることです。また、focusableおよびfocusableInTouchModeも必要です。
<TextView
...
Android:focusable="true"
Android:focusableInTouchMode="true">
<requestFocus/>
</TextView>
別のビューがフォーカスを取得します。デフォルトでは、レイアウトが膨張すると、最初のフォーカス可能なビューがフォーカスを取得します。 XMLを介して別のビューにフォーカスを要求できます。
_<TextView
Android:layout_width="wrap_parent"
Android:layout_height="wrap_content"
Android:text="Some other view">
<requestFocus />
</TextView>
_
これはどのビューでも機能します。
プログラムで実行する場合は、view.requestFocus()
を使用できます。
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}