6

我已经尽一切努力让我的“前进”和“后退”发挥作用。

刷新正在工作[我通过将方法更改为“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) && 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);
}

}

4

1 回答 1

4

您共享的代码不包括您创建 web 视图和在 url 之间导航的部分。所以我只是猜测可能发生的事情。

这似乎webview是您的班级的一个实例字段,您在问题中显示了它的部分。webView每次导航到新页面时都会重新创建它吗?也就是说,代码类似于:

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

如果这是正在做的事情,您只需要创建一次“webView”,然后loadUrl每次需要导航到新的 url 时调用。这样,webview 实例将能够保留历史记录。

于 2011-06-02T07:28:36.487 回答