2013-03-14 18 views
6

誰でもソフトキーボードが表示されて消える理由を説明してください。なぜAndroidソフトキーボードが表示されるのですか?

私は、さまざまなコントロール、主にEditTextsとButtonsのレイアウトを持っています。最初にそのページを表示すると、レイアウトの上部にあるEditTextにフォーカスがあり、ソフトキーボードが画面の下部45%をカバーしています

EditTextにフォーカスがあったのでキーボードがあると思っていました私のページの一番下にあるボタンに、代わりにフォーカスを当てることに決めました。 。 。

butDone.setFocusableInTouchMode(true); 
    bResult = butDone.requestFocus(); 

...右後 setContentView()。これは、ボタンに焦点を当てる限りは機能しました。ボトルトンにフォーカスがあり、EditTextにはフォーカスがなくなりましたが、キーボードはまだそこにありました。最終的に私はキーボードをなくしました

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

しかし、フォーカスを持っているEditTextについての私の理論は間違っていました。だから誰かが、キーボードが表示されたときに表示されるもの、またはそれらのルールへのリンクに関する「ルール」を説明してもらえますか?前もって感謝します!

答えて

0

デフォルトでは、レイアウトのXMLでフォーカスについて何も定義していない場合、最初のEditTextがフォーカスを取得します。

詳細については、thisの回答を確認してください。キーボードを外す代わりにキーボードを表示したくない場合は、このソリューションを使用する必要があります。

+0

コード内のボタンにフォーカスを当てても、フォーカスがXMLで指定されていないため、フォーカスが無視されると言っていますか? – user316117

+0

いいえ、Androidのフォーカスをデフォルトで最初のEditTextに移してからプログラムで変更するのではなく、XMLで指定する方が良い解決策だと言っています。 – Edgar

関連する問題