WebView Back,Refresh,Forward?根本行不通!

时间:2011-06-02 07:02:14

标签: android user-interface android-layout webview options-menu

我已经尝试了一切让我的“前进”和“后退”工作。

刷新正在运行[我通过将方法更改为'webView.reload();'来解决这个问题。而不是'webView.refresh();'

任何人都可以协助前进和后退吗?我试过'前锋','canGoForward'和'goForward'以及'后退','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);
}

}

1 个答案:

答案 0 :(得分:4)

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

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

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

如果这是正在进行的操作,您只需创建一次'webView',并在每次需要导航到新网址时调用loadUrl。这样webview实例就能保留历​​史记录。