尝试在片段内从webview激活android后退按钮

时间:2015-05-14 22:19:23

标签: android webview fragment

我试图通过片段中的网页视图获取后退按钮。代码无法编译,有人可以告诉我我做错了什么吗?

我从内部课程中获取" webview需要是最终的"错误。

此外,我得到了#34;无法解析符号处理程序"错误。

包info.androidhive.slidingmenu;

import android.app.Fragment;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class PagesFragment extends Fragment {

    public PagesFragment(){}



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

        View rootView = inflater.inflate(R.layout.fragment_pages, container, false);

        WebView webView = (WebView) rootView.findViewById(R.id.webviewpages);
        webView.getSettings().setJavaScriptEnabled(true);

        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("http://www.google.com");
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webView.setOnKeyListener(new View.OnKeyListener(){

            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
                    handler.sendEmptyMessage(1);
                    return true;
                }
                return false;
            }

        });

        return rootView;


    }



}

1 个答案:

答案 0 :(得分:0)

  从内部类中访问webview需要是最终的

webview变量需要是最终的才能从内部类访问。只需声明:

final WebView webView = (WebView) rootView.findViewById(R.id.webviewpages);
  

无法解析符号处理程序

当前范围内没有名为handler的符号,但使用的是:

handler.sendEmptyMessage(1);

您需要声明该符号。

如果您提出这样的问题,我猜您正在关注一些教程。再次检查教程,你错过了什么。