111

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

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

4

9 に答える 9

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

また

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

android:windowSoftInputMode="stateHidden"
于 2011-05-23T10:10:38.083 に答える
147

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

android:windowSoftInputMode="stateHidden"
于 2010-12-15T19:48:50.580 に答える
23

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

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

onResume()

于 2012-04-24T12:48:30.900 に答える
14
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

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

android:windowSoftInputMode="stateHidden"または、アクティビティタグを追加するだけですManifest.xml

于 2015-08-19T09:06:34.153 に答える
11

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

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

    <requestFocus/>
</TextView>
于 2016-04-06T12:37:01.610 に答える
5

別のビューでフォーカスを取得します。デフォルトでは、最初のフォーカス可能なビューは、レイアウトが膨らんだときにフォーカスを取得します。XMLを介して別のビューにフォーカスをリクエストできます。

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

    <requestFocus />
</TextView>

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

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

于 2014-12-10T22:48:35.757 に答える
1

android:windowSoftInputMode="stateHidden"マニフェストでアクティビティに追加すると、アクティビティを起動するとき、またはGoogleが言うように、キーボードが非表示になります。

ユーザーが別のアクティビティを離れたためにアクティビティに戻るのではなく、アクティビティに積極的に移動した場合

ユーザーが戻るボタンを押して他のアクティビティからアクティビティに戻ったときにもキーボードを非表示にするには、次を使用します。android:windowSoftInputMode="stateAlwaysHidden"

于 2020-07-22T08:51:23.733 に答える
0
if(getWindow().getAttributes().softInputMode==WindowManager.LayoutParams.SOFT_INPUT_STATE_UNSPECIFIED)
{
    getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
}
于 2012-05-24T10:05:37.843 に答える
-1

これを試したことがなく、プログラミングコンピュータの近くにいませんが、プログラムで親ビューにフォーカスを送信するか、その性質の何かがトリックを実行できると思われます-それは解決策よりも回避策である可能性が高いですが、それをテストすることはできません思い

于 2010-05-26T19:01:44.170 に答える