単純な構造として、
- MainActivity.java
- WevFragment.java
があるとします。
Fragmentは
- fragment_web.xml
があるとします。(ここは別に重要じゃないけど)
スポンサーリンク
WebFragment.java
とりあえずWebFragment.javaでパブリックなWebViewを宣言してonCreateViewで処理を書いておきましょう。
public class WebFragment extends Fragment { public static WebView webView; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_web, container, false); webView = (WebView) view.findViewById(R.id.web_view); // 続きの処理は書く return view; } }
端末の戻るキーでブラウザバックする
タブレイアウトでWebViewを使っているとFragmentに処理を書いてもブラウザバックが効かなかったです。
多分タブレイアウトに限ったことではなくFragmentを使ってWebViewを表示しているときはこうするのが正しいのはないかと思います。
間違っていたら教えてください。
MainActivityに処理を書きます。
@Override public void onBackPressed() { if (WebFragment.webView!=null) { if (WebFragment.webView.canGoBack()) { WebFragment.webView.goBack(); } } }
onBackPressed
で戻るキーの押下を取得して、処理を書きます。
こちらはActivityでWebViewを表示するときと同じですが、違う部分はWebFragmentのWebViewを指定しているだけです。
簡単ですね。
考えれば行き当たりそうな結果です。