#android #user-interface #android-layout #webview #options-menu
#Android #пользовательский интерфейс #android-layout #веб-просмотр #параметры-меню
Вопрос:
Я перепробовал все, чтобы заставить мои «вперед» и «назад» работать.
Обновление работает [я понял это, изменив метод на чтение ‘WebView.reload();’ вместо ‘WebView.refresh();’
Кто-нибудь может помочь с пересылкой и возвратом? Я пробовал ‘forward’, ‘canGoForward’ и ‘goForward’, а также ‘back’, ‘canGoBack’ и ‘GoBack’. Кодов ошибок нет, однако ни один из этих методов фактически ничего не делает.
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) amp;amp; 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);
}
}
Ответ №1:
Код, которым вы поделились, не включает ту часть, где вы создаете webview и переходите между URL-адресами. Итак, я просто предполагаю, что может происходить.
Похоже, что webview
это поле экземпляра вашего класса, часть которого вы показали в вопросе. Может ли быть так, что webView
создается заново каждый раз, когда вы переходите на новую страницу? То есть код представляет собой что-то вроде:
webview = new WebView(this);
webview.loadUrl("http://slashdot.org/");
Если это то, что делается, все, что вам нужно, это создать ‘WebView’ один раз и просто вызывать loadUrl
каждый раз, когда вам нужно перейти к новому URL. Таким образом, экземпляр webview сможет сохранять историю.
Комментарии:
1. Спасибо, я только что отремонтировал loadUrl, как рекомендовано, и он отлично работал! Ты замечательный!