Android WebView重写返回按钮实现页面回退遇静态上下文调用错误
解决WebView物理返回键调用实例方法的错误
- 错误根源:
canGoBack()和goBack()是WebView的实例方法,不能直接通过WebView类以静态方式调用,必须使用你初始化好的WebView对象来调用。
正确实现步骤
- 先在Activity中获取WebView实例(假设布局中WebView的id为
web_view):
private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.your_activity_layout); mWebView = findViewById(R.id.web_view); // 这里添加WebView的初始化配置,比如加载page1.html等操作 }
- 修改
onBackPressed()方法,用WebView实例调用对应方法:
@Override public void onBackPressed() { if (mWebView != null && mWebView.canGoBack()) { mWebView.goBack(); // 返回上一个网页(比如从page2回到page1) } else { super.onBackPressed(); // 无网页可返回时,执行系统默认返回逻辑 } }
- 额外注意:添加
mWebView != null判断是为了避免空指针异常,确保WebView已经完成初始化。
内容的提问来源于stack exchange,提问作者Anonymous
相关产品推荐
相关产品推荐

