gpt4 book ai didi

java - 在Android WebView上实现后退按钮

转载 作者:行者123 更新时间:2023-12-02 10:48:26 26 4
gpt4 key购买 nike

我尝试在 android webview 上实现后退按钮,但它说

error: method does not override or implement a method from a supertype    
error: cannot find symbol method onBackPressed()

Activity 代码:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.graphics.Bitmap;
import android.view.View;
import android.widget.ProgressBar;
import android.view.KeyEvent;

public class MainActivity extends AppCompatActivity {

String ShowOrHideWebViewInitialUse = "show";
private WebView webview ;
private ProgressBar spinner;

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

webview =(WebView)findViewById(R.id.webView);
spinner = (ProgressBar)findViewById(R.id.progressBar1);
webview.setWebViewClient(new CustomWebViewClient());

webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setDomStorageEnabled(true);
webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
webview.loadUrl("http://web.com");

}

// This allows for a splash screen
// (and hide elements once the page loads)
private class CustomWebViewClient extends WebViewClient {

@Override
public void onPageStarted(WebView webview, String url, Bitmap favicon) {

// only make it invisible the FIRST time the app is run
if (ShowOrHideWebViewInitialUse.equals("show")) {
webview.setVisibility(webview.INVISIBLE);
}
}

@Override
public void onPageFinished(WebView view, String url) {

ShowOrHideWebViewInitialUse = "hide";
spinner.setVisibility(View.GONE);

view.setVisibility(webview.VISIBLE);
super.onPageFinished(view, url);

}

@Override
public void onBackPressed()
{
WebView webView = (WebView) findViewById(R.id.webView);
if(webView.canGoBack()){
webView.goBack();
}else{
super.onBackPressed();
}
}
}
}

我尝试了 stackoverflow 上其他来源的方法,但仍然没有得到有效的答案。也许我的知识还比不上别人。我希望这个社区中的有人可以帮助我解决这个问题。还简要说明了我应该如何使后退按钮在 webview 上工作

最佳答案

WebView 外部和 Activity 类方法内部使用 onBackPressed() 方法:

@Override
public void onBackPressed()
{
WebView webView = (WebView) findViewById(R.id.webView); // Remove this
if(webView.canGoBack()){
webView.goBack();
}else{
super.onBackPressed();
}
}

}

此外,尝试在 onCreate() 方法中初始化 WebView 并删除 onBackPressed() 中的第二个重复代码。

<小时/>

为了能够在整个Activity中访问它,请像这样初始化它:

public class MainActivity extends AppCompatActivity {

String ShowOrHideWebViewInitialUse = "show";
private WebView webview;
private ProgressBar spinner;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webview = (WebView) findViewById(R.id.webView);
}

关于java - 在Android WebView上实现后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52372826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com