しばしはまったのでメモ。
Androidで、WebViewを他のViewと同じ画面に配置するような時、他のTextViewなどにフォーカスがいったん移ると、WebView部分をタッチしても、入力ボックスなどにフォーカスが移動しなくなってしまいます。
これを回避するためには、
WebView wv = (WebView) findViewById(R.id.webview); wv.setOnTouchListener(new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { v.requestFocus(View.FOCUS_DOWN); return false; } });
のように、WebViewがタッチされたらrequestFocusすると再び入力ボックスなどにフォーカスがあたり、文字入力が出来るようになります。
requestFocus(View.FOCUS_DOWN);をした後にもとに戻すのは、
requestFocus(View.FOCUS_UP);でしょうか?
>>shinriyoさん
ご質問ありがとうございます。
古い記事なので内容は最新のOSバージョンでは保証できないのですが、その上で回答させていただきます。
この記事は、例えばWebViewの下にもテキストボックスが配置されているようなケースで、テキストボックスを編集した後でWebViewをタップすると、WebView内のフォームのinputタグにフォーカスが当たらないという問題に対処したものです。
ですので、特に明示的にFOCUS_UPのような処理を行う事は想定していません。
編集ボックスをタップすれば、編集ボックスに再びフォーカスが自動的に移ります。
これでいかがでしょうか。