6

edittext とボタンでアプリを作っています。edittext に何かを入力してからボタンをクリックすると、キーボードと edittext のフォーカスが消えるようにしたいのですが、それができないようです。

次の 2 行のコードを XML に挿入しました。

android:focusable="true"
android:focusableInTouchMode="true"

ボタンクリックメソッドにもこれを追加しようとしました:

edittext.clearFocus();
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

ボタンを押した後、キーボードはそこに残り、edittext にはまだフォーカスがあります。

4

4 に答える 4

17

キーボードを非表示にするには、次のように呼び出します。

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

このソリューションを確認することもできます: https://stackoverflow.com/a/15587937/786337

于 2013-07-05T14:54:38.420 に答える
13

別の解決策は、ダミーのレイアウトを作成することです

<!-- Dummy item for focus at startup -->
<LinearLayout
    android:id="@+id/dummy_id"
    android:orientation="vertical"
    android:layout_width="0px"
    android:layout_height="0px"
    android:focusable="true"
    android:focusableInTouchMode="true" />

フォーカスを設定しますonButtonClickFunction

((LinearLayout) findViewById(R.id.dummy_id)).requestFocus();
于 2013-07-05T15:04:16.327 に答える