0

私は Android アプリを開発しています。ここでは少し混乱しています。まず、webview に html フォーム データをロードしました。次に、最初のページのリンクから別のページに移動しました。最初のページに戻って、「onBackPressed()」メソッドで次のコードを使用しました。しかし、最初のページに空のWebビューが表示されます。以下に書かれている別の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 が戻ることができる場合、単に戻って他に何もしないということです。それ以外の場合は、webview が戻ることができない場合は、アクティビティがないことを確認し、その中のコードを探します。それ以外の場合は終了します。webview が最初のページに来た場合に 1 つのことを追加したいと思います。次に、アクティビティ番号に関係なく、データをロードします。

どこが間違っていますか。ありがとう

4

2 に答える 2

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);
于 2012-04-16T11:26:48.567 に答える
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);
}

オーバーライドされた Class を使用しonKeyDownました。ここで KeyEvent をチェックします。

これがうまくいくことを願っています..

于 2012-04-16T12:02:03.863 に答える