我有一个网页视图,可让我浏览网站。当我单击后退按钮,而不是它转到上一页时,它退出应用程序。我已将以下方法添加到MainActivity.java
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
setContentView(R.layout.activity_main);
WebView webview = (WebView) this.findViewById(R.id.webView);
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webview.canGoBack()) {
webview.goBack();
} else {
finish();
}
return true;
}
}
return super.onKeyDown(keyCode, event);
}
答案 0 :(得分:16)
我认为您应该覆盖您的活动OnBackPressed
:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
答案 1 :(得分:3)
不要覆盖onKeyDown
事件,覆盖onBackPressed
,这样每次按下后退按钮时,您都可以覆盖它并将自己的逻辑添加到其中。守则是这样的:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
答案 2 :(得分:0)
下一个按钮和进度栏的完整参考:put back and next button in webview
如果要在单击手机的后退按钮时返回上一页,请使用以下方法:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
您还可以像这样创建自定义后退按钮:
btnback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (wv.canGoBack()) {
wv.goBack();
}
}
});
答案 3 :(得分:0)
按Backkey键的事件不适合在这里使用此代码:
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent=new Intent(LiveImage.this,DashBoard.class);
startActivity(intent);
}