Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java onBackPressed()-无法解析符号';网络视图';_Java_Android_Xml_Webview - Fatal编程技术网

Java onBackPressed()-无法解析符号';网络视图';

Java onBackPressed()-无法解析符号';网络视图';,java,android,xml,webview,Java,Android,Xml,Webview,我试图在我的WebView应用程序中恢复按钮功能,但onBackPressed()函数出现错误“无法解析符号WebView” 这是我的密码: @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_m

我试图在我的WebView应用程序中恢复按钮功能,但onBackPressed()函数出现错误“无法解析符号WebView”

这是我的密码:

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    AdView mAdView;
    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder().build();
    mAdView.loadAd(adRequest);

    WebView webView = (WebView) findViewById(R.id.webview);

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);

    // To keep browser in width of phone
    webView.getSettings().setUseWideViewPort(true);
    webView.getSettings().setLoadWithOverviewMode(true);

    // Sets default text size
    webSettings.setTextZoom(175);

    MyWebViewClient webViewClient = new MyWebViewClient();
    webView.setWebViewClient(webViewClient);

    webView.loadUrl("http://www.google.com");
}

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

您可以在onBackPressed中执行此操作:

    @Override
public void onBackPressed() {
    WebView webView = (WebView) findViewById(R.id.webview);
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}
编辑: 您可以这样做(使用字段):


谢谢,这似乎不是“正确”的解决方案,但它会的。谢谢@James我已编辑了我的答案(如何使用此字段)
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState){
      // ...
      this.webView = (WebView) findViewById(R.id.webView);
      // ...
}

@Override
public void onBackPressed(){
    // now you don't need findViewById because you can access field prepared in onCreate
    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }
}