0

WebViewusingを作成しましたFragment。ここに私のコードがあります:

public class MyWebView extends Fragment {

    private WebView webView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        Bundle args = getArguments();
        String url = args.getString("url");
        webView = (WebView) getView().findViewById(R.id.webView);

        webView.setWebViewClient(new MyBrowser());

        WebSettings webSettings = webView.getSettings();
        webSettings.setSaveFormData(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setSupportZoom(true);
        webSettings.setBuiltInZoomControls(true);

        webSettings.setLoadsImagesAutomatically(true);
        webSettings.setJavaScriptEnabled(true);
        webView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webView.loadUrl(url);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.web_view, container, false);

        view.setOnKeyListener(new OnKeyListener() {
              @Override
              public boolean onKey( View v, int keyCode, KeyEvent event ) {
                  if (keyCode == KeyEvent.KEYCODE_BACK) {
                      if (webView.canGoBack()) {
                          webView.goBack();
                          return true;
                      }
                  }
                  return false;
              }
         });

        return view;        
    }

    private class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
           view.loadUrl(url);
           return true;
        }
    }
}

オーバーライドしようとしましonBackPressed()たが、動作しないようFragmentです。だから使っsetOnKeyListener()たけどダメ。戻るボタンを押すと、前の Web ページに戻らずにアプリを閉じる理由を教えてください。

4

1 に答える 1