Reputation: 3280
I have a web view that lets me browse through a site. When i click the back button, rather than it going to the previous page it exits the app. I have added the following method to 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);
}
Upvotes: 4
Views: 21244
Reputation: 2709
Backkey pressed event is not suitable here use this code:
@Override
public void onBackPressed() {
super.onBackPressed();
Intent intent=new Intent(LiveImage.this,DashBoard.class);
startActivity(intent);
}
Upvotes: 0
Reputation: 4623
Full reference for next button and progress bar : put back and next button in webview
If you want to go to back page when click on phone's back button, use this:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
You can also create custom back button like this:
btnback.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (wv.canGoBack()) {
wv.goBack();
}
}
});
Upvotes: 0
Reputation: 8190
I think you should override your activity OnBackPressed
:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
Upvotes: 20
Reputation: 4124
Do not override onKeyDown
event, override onBackPressed
, so that every time the back button is pressed, you can override it and add your own logic into it. The Code is like this:
@Override
public void onBackPressed() {
if (webView.canGoBack()) {
webView.goBack();
} else {
super.onBackPressed();
}
}
Upvotes: 3