首页 > 解决方案 > 如何将我的正常代码写入片段?

问题描述

我正在使用 Android Studio 编写应用程序。我是几天前开始的。我想将 WebView 放在片段中。因为我Fragment用来呈现 WebView,所以我无法覆盖onBackPressed以处理后退按钮事件。我正在尝试实现按下后退按钮时打开 WebView 上一页的行为。我找到了这段代码:

    @Override
    public void onBackPressed(){
        if(webView.canGoBack()){
            webView.goBack();
        }
        else{
            super.onBackPressed();
        }
    }

但这在片段中不起作用。有人可以帮我这个例子,或者一般来说我如何在片段类中编写我的普通代码。

标签: javaandroidandroid-fragments

解决方案


在 Fragment 的 onCreateView 方法中尝试此代码

webView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == android.view.KeyEvent.ACTION_DOWN) {
                if ((keyCode == android.view.KeyEvent.KEYCODE_BACK)) {
                    if(webView!=null)
                    {
                        if(webView.canGoBack())
                        {
                            webView.goBack();
                        }  else {
                            getActivity().onBackPressed();
                        }
                    }
                }
            }

            return true;
        }
    });

推荐阅读