2010年5月17日月曜日

Android 自動でソフトキーボードが出るのを防ぐ

Activity を起動したときに
EditText にフォーカスがあたるようになっていると
自動でソフトキーボードが出ることがあります。

これを防ぐには Window の setSoftInputMode() で
SoftInputMode を設定します。

こんな感じ


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);  
this.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
setContentView(R.layout.main);
}


ここでは、SOFT_INPUT_STATE_ALWAYS_HIDDEN を使っていますが、
SOFT_INPUT_STATE_HIDDEN でも大丈夫かも(確認してません)


他にも Visibility state に以下の値が設定できます。
WindowManager.LayoutParams

SOFT_INPUT_STATE_ALWAYS_HIDDEN
window がフォーカスを受けたときに常に soft input area を隠す

SOFT_INPUT_STATE_ALWAYS_VISIBLE
window がフォーカスを受けたときに常に soft input area を表示する

SOFT_INPUT_STATE_HIDDEN
通常、適切なとき(ユーザが window を全面に持ってきたとき)に soft input area を隠す

SOFT_INPUT_STATE_UNCHANGED
soft input area の状態を変更しないでください

SOFT_INPUT_STATE_UNSPECIFIED
状態は指定されていない

SOFT_INPUT_STATE_VISIBLE
通常、適切なとき(ユーザが window を全面に持ってきたとき)に soft input area を表示する

1 件のコメント:

  1. EditText にフォーカスがあたるようになっていると自動でソフトキーボードが出ることがあります。 これを防ぐには Window の setSoftInputMode() で SoftInputMode を設定します。 こんな感じ. view plainprint? @Override; protected void ... キーボード.blogspot.com

    返信削除