Webview奇怪的行为

时间:2012-04-16 11:24:11

标签: android webview

我正在开发一个Android应用程序,在这里我有点困惑,首先,我在webview中加载了一个html表单数据。然后从我第一页的链接导航到不同的其他页面。现在回到第一页,我在“onBackPressed()”方法中使用了以下代码。但它在第一页显示我的空webview。为了避免我添加了下面写的另一个if条件,但结果仍然相同,

if(webview.canGoBack() == true)
{
    webview.goBack();
    if(!webview.canGoBack())
        webview.loadDataWithBaseURL("http://xyz.com/feed/", data, "text/html", "utf-8", null);
}
// if now on fist page then do the following
else if(activityno==2) {
    Intent fav = new Intent(Views.this, FavroiteShow.class);
    startActivity(fav);
}
//on first page and activity no is not 2 then do the following
else
   finish();
}

就像,如果webview可以回去,只需要goback,什么都不做。否则,如果webview无法返回,则检查活动否并转到其中的代码,否则完成。我想添加一件事,如果webview已经到了第一页。然后加载我的数据,无论活动是什么。

我错了。 感谢

2 个答案:

答案 0 :(得分:0)

立即尝试..

 if(webview.canGoBack() == true)
           webview.goBack();
   else  //if there is no history available
         webview.loadDataWithBaseURL("http://xyz.com/feed/", data, "text/html", "utf-8", null);

答案 1 :(得分:0)

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    // TODO Auto-generated method stub
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
        webview.goBack();
        return true;
    } else if (!webview.canGoBack()) {
        webview.loadDataWithBaseURL("http://xyz.com/feed/", data,
                "text/html", "utf-8", null);
        // if now on fist page then do the following
        if (activityno == 2) {
            Intent fav = new Intent(Views.this, FavroiteShow.class);
            startActivity(fav);
        }
        else {
            finish();
        }
    }

    return super.onKeyDown(keyCode, event);
}

我使用了覆盖类onKeyDown。并在此查看KeyEvent。

希望这对你有用..