I have tried everything to get my 'forward' and 'back' to work.
Refresh is working [I figured it out by changing the method to read 'webView.reload();' instead of 'webView.refresh();'
Can anyone assist with the forward and back? I have tried 'forward', 'canGoForward' and 'goForward' as well as 'back', 'canGoBack' and 'goBack'. There are no error codes however none of those methods actually do anything.
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu); // Add menu items, second value is the id, use this in the onCreateOptionsMenu
menu.add(0, 1, 0, "Back");
menu.add(0, 2, 0, "Refresh");
menu.add(0, 3, 0, "Forward");
return true; // End of menu configuration
}
public boolean onOptionsItemSelected(MenuItem item){ // Called when you tap a menu item
switch (item.getItemId()){
case 1: //If the ID equals 1, go back
webView.goBack();
return true;
case 2 : //If the ID equals 2, refresh
webView.reload();
return true;
case 3: //If the ID equals 3, go forward
webView.goForward();
return true;
}
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { // Enables browsing to previous pages with the hardware back button
if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) { // Check if the key event was the BACK key and if there's history
webView.goBack();
return true;
} // If it wasn't the BACK key or there's no web page history, bubble up to the default
// system behavior (probably exit the activity)
return super.onKeyDown(keyCode, event);
}
}
The code you shared doesn't include the portion where you are creating webview and navigating between urls. So I am just taking a guess at what might be happening.
It seems that webview
is an instance field of your class whose portion you have shown in the question. Could it be that webView
is being recreated every time you navigate to a new page? That is, the code is something like:
webview = new WebView(this);
webview.loadUrl("http://slashdot.org/");
If this is what is being done, all you need is to create the 'webView' once and just call loadUrl
everytime you need to navigate to new url. This way the webview instance will be able to retain the history.