5

J'ai tout essayé pour que mon 'forward' et 'back' fonctionnent. L'actualisation fonctionne [Je l'ai compris en changeant la méthode pour lire 'webView.reload();' au lieu de 'webView.refresh();'WebView Précédent, Actualiser, Suivant? Tout simplement ne fonctionne pas!

Quelqu'un peut-il aider avec l'avant et l'arrière? J'ai essayé 'forward', 'canGoForward' et 'goForward' ainsi que 'back', 'canGoBack' et 'goBack'. Il n'y a pas de codes d'erreur mais aucune de ces méthodes ne fait quoi que ce soit.

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); 
} 

}

Répondre

4

Le code que vous partagiez ne comprend pas la partie où vous créez WebView et naviguer entre les urls. Donc, je ne fais que deviner ce qui pourrait arriver.

Il semble que webview est un champ d'instance de votre classe dont la partie que vous portez à la question. Se pourrait-il que webView est recréée à chaque fois que vous accédez à une nouvelle page? Autrement dit, le code est quelque chose comme:

webview = new WebView(this); 
webview.loadUrl("http://slashdot.org/"); 

Si c'est ce qui se fait, tout ce que vous avez besoin est de créer le « webView » une fois et il suffit d'appeler loadUrl chaque fois que vous devez accéder à une nouvelle URL. De cette façon, l'instance webview pourra conserver l'historique.

+0

Merci, je viens de réparer le LoadURL tel que recommandé et il fonctionnait très bien! Vous êtes merveilleux! –

+0

Bon à savoir que l'aveugle devine travaillé :) –

Questions connexes