ボタンをクリックした後、Androidキーボードを非表示にする必要があります。
これを行う方法の例をたくさん見てきましたが、それらはすべて特定のeditTextオブジェクトを使用しているように見えます。
例えば
InputMethodManager imm = (InputMethodManager)getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
私の問題は、画面を動的に構築しているため、たてがみ編集テキストフィールドが存在する可能性があることです。キーボードを非表示にするeditTextオブジェクトを指定せずに、キーボードを非表示にする方法はありますか?
代わりに、レイアウトに設定することもできます。
LinearLayout mainLayout;
// Get your layout set up, this is just an example
mainLayout = (LinearLayout)findViewById(R.id.myLinearLayout);
// Then just use the following:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mainLayout.getWindowToken(), 0);
これは、配置されているEditText
オブジェクト(または他のオブジェクト)の数に関係なく、レイアウトが作成されると想定した例です。
編集:また、私が非常に役立つと思うのは、アクティビティが最初に起動したときにキーボードが非表示になっていることを確認することです(つまり、EditText
が最初に焦点を当てている場合)。それを行うために、私はこれonCreate()
をアクティビティのメソッドに入れました:
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加