EditTextのフォーカスでソフトウェアキーボードが勝手に開かないようにする

アプリを起動するとEditTextがある場合はそこにフォーカスがあたってしまい、ソフトウェアキーボードが開いた状態でかなり醜くなってしまう。ソフトウェアキーボードが起動しないようにするには、

  • ボタンなどにフォーカスを当てる
  • EditTextのフォーカスを解除する
  • ソフトウェアキーボードを閉じる

という方法がある。

1、ボタンなどにフォーカスを当てる

これをやるとボタンだったら押された状態になり、ボタンの色が変わるので却下。

次にTextViewにフォーカスを当てる場合はうまくいくけど、強引さが気になる。

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:focusable=”true”
android:focusableInTouchMode=”true” >

<requestFocus /> //これを追加することを忘れない。
</TextView>

2、EditTextのフォーカスを解除する

これが一番シンプルで良い感じがする。「.clearFocus()」を実行するといい。

text_tw = (EditText)findViewById(R.id.test);
text_tw.clearFocus();

3、ソフトウェアキーボードを閉じる

これは起動直後ではうまく起動しなかった。

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(getBaseContext().INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(text_tw.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です