web-dev-qa-db-ja.com

画面が表示されたときにフィールドのオートフォーカス/キーボードポップアップを削除するにはどうすればよいですか?

最初のフィールドがEditTextである画面があり、起動時にフォーカスを取得し、数値入力タイプもポップアップします。これは非常に迷惑です

アクティビティが開始されたときにフォーカスが得られないこと、および/または入力パネルが上げられないことを確認するにはどうすればよいですか?

97
Pentium10
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);

または

アプリケーションタグでマニフェストファイルのアクティビティプロパティを以下のように設定します

Android:windowSoftInputMode="stateHidden"
146
Mitul Nakum

アプリケーションマニフェストファイルに移動し、自動キーボードポップアップを無効にするアクティビティのこの行を記述します。

Android:windowSoftInputMode="stateHidden"
142
sm.euro

プログラムでキーボードを表示せずに、デフォルトのウィジェットでフォーカス呼び出しを受信するには:

getWindow().setSoftInputMode(WindowManager.
                             LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

onResume()

19
danmux
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

上記のメソッドをonCreate()内で呼び出します。これにより、softKeyboardユーザーがtapping or clicking.EditTextを選択しない限り

または、Android:windowSoftInputMode="stateHidden"のActivityタグにManifest.xmlを追加するだけです

10

これは通常混乱です。私が最初に試みることは、別のビューでを介してフォーカスを盗もうとすることです。また、focusableおよびfocusableInTouchModeも必要です。

<TextView
  ...
  Android:focusable="true"
  Android:focusableInTouchMode="true">

    <requestFocus/>
</TextView>
5
urSus

別のビューがフォーカスを取得します。デフォルトでは、レイアウトが膨張すると、最初のフォーカス可能なビューがフォーカスを取得します。 XMLを介して別のビューにフォーカスを要求できます。

_<TextView
    Android:layout_width="wrap_parent"
    Android:layout_height="wrap_content"
    Android:text="Some other view">

    <requestFocus />
</TextView>
_

これはどのビューでも機能します。

プログラムで実行する場合は、view.requestFocus()を使用できます。

4
Jason Robinson
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
0
paul Liang