EditTextと2つのボトムを表示しているアクティビティがあります。
EditTextをタップすると、Android仮想キーボードが表示され、テキストを入力できるようになります。さて、下をタップする前に、キーボードを非表示にしたいと思います。画面をタップしてやりたいです。
私はここでいくつかの同様の質問を伴うstackoverflowの投稿を見ましたが、それは機能しているようには見えません。リスナーを設定しようとしました:
// Create an anonymous implementation of OnFocusChangeListener
private OnFocusChangeListener mFocusListener = new OnFocusChangeListener() {
public void onFocusChange(View v, boolean b) {
// do something when the focus changes
hideSoftKeyboard(v);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setupUI(findViewById(R.id.parent));
EditText editText = (EditText) findViewById (R.id.edit_message);
editText.setOnFocusChangeListener(mFocusListener);
setContentView(R.layout.activity_main);
}
また、onTouchイベントをテキストビューではないすべてのビューに再帰的に関連付ける親アクティビティを作成しようとしましたが、テキストビューのみが登録されます(このコードは別のstackoverflow投稿から取得しました)
public void setupUI(View view) {
//Set up touch listener for non-text box views to hide keyboard.
if(!(view instanceof EditText)) {
view.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
hideSoftKeyboard(v);
return false;
}
});
}
//If a layout container, iterate over children and seed recursion.
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
View innerView = ((ViewGroup) view).getChildAt(i);
setupUI(innerView);
}
}
}
これに対するまっすぐな解決策はありますか?これを行うためのより簡単な方法がないことを私は信じることができません。Gingerbread API(APIレベル10)を使用しています
ありがとう