最近になってまたWebViewを触り始めました。webViewってjavascriptとかのイメージが強いですがandroidでも頑張れば実装できるみたい
ですね。しかもこっちはネイティブだから処理速度も安定しているときたので使いこなせれば開発の引き出しが増えそうですね。
今回はそのwebviewを使っていて、アクションバーの中のアイコンをタップしたときに何らかの処理をするメソッドを載せていきます。
タップしたアイコンに応じて処理を切り分けるには、onOptionsItemSelected(MenuItem item)メソッドを使う必要があります。
このメソッドは、ヘッダーに当たるアレ。即ちアクションバーに配置したアイコンに応じて処理をswitchで分岐させる役割を
担っています。
例えば、switchの引数idの中身がhomeだった場合は、finish();で終了させてホームボタンにバックさせます。
<pre>@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); WebView webView = (WebView) findViewById( R.id.webView); switch (id) { case android.R.id.home: finish(); break; case R.id.menu_share: ShareCompat.IntentBuilder builder = ShareCompat.IntentBuilder.from(this); String url = webView.getUrl(); builder.setText(url); builder.setType("text/plain"); builder.startChooser(); break; case R.id.reload: webView.clearCache(true); webView.reload(); break; } return super.onOptionsItemSelected(item); }</pre>
このように、一般的なアプリのアクションバーにあるページ更新やシェア機能も切り分けて実装することができます。