8

OnCreate のコードにコンテンツを動的に追加する TableLayout があります。アクティビティが作成されると、動的に作成された EditText の 1 つに焦点が当てられ、キーボードが表示されます。ユーザーが EditTexts のいずれかを具体的に押すまで、キーボードを表示したくありません。私はもう試した:

InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService);
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0);

ただし、キーボードは引き続き表示され、CurrentFocus は null を返します。したがって、特にフォーカスを別のビューに向けてから、上記のように実行しようとすると、次のようになります。

InputMethodManager input = (InputMethodManager) GetSystemService(InputMethodService);
title.FindFocus();
input.HideSoftInputFromWindow(CurrentFocus.WindowToken, 0);

CurrentFocus は引き続き null で、キーボードは引き続き表示されます。title は、既にコード内にインスタンスを持っている TextView です。TextView にフォーカスを当てることはできませんか、それとも他に何か不足していますか?

4

3 に答える 3

28
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
于 2012-04-20T13:06:04.640 に答える
10

非常に簡単

  1. AndroidManifest.xmlファイルに移動します
  2. アクティビティに次を追加します。android:windowSoftInputMode="stateHidden"

例えば:

<activity
         android:name=".package.example.MyActivity"
            android:windowSoftInputMode="stateHidden"/>
于 2016-02-08T22:37:52.640 に答える