4

「戻る」ボタンを webview で機能させるのに問題があります。

コードのどこにonKeyDown()パーツを配置すればよいかわかりません(現在、最後の の下@Override

どちらもmywebview.canGoBack()mywebview.goBack()「mywebview を解決できません」というエラーが発生します。

ブラケットをmywebview.setWebClient(...)一番下まで移動すると、消えますmywebview-errorが、、、、、およびすべての種類のエラーが発生します。overrideonKeyDownreturn truereturn super

誰が何をすべきか教えてもらえますか?

コード:

package com.sib;

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class SiB extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sib);

        WebView mywebview = (WebView) findViewById(R.id.webview);
        mywebview.loadUrl("url");

        WebSettings webSettings = mywebview.getSettings();
        webSettings.setJavaScriptEnabled(true);

        mywebview.setWebViewClient(new WebViewClient());

    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if ((keyCode == KeyEvent.KEYCODE_BACK) && mywebview.canGoBack()) {
            mywebview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
}
4

2 に答える 2

3

クラスmywebviewのインスタンス変数を作成します。

public class SiB extends Activity {
WebView mywebview;

次に、宣言を取り出してシャドウしないようにしonCreate()てください。次のようになります。

mywebview = (WebView) findViewById(R.id.webview);
mywebview.loadUrl("url");

そして、私が見つけたものに基づいて、ゲイブは正しい. onKeyDown()for back presses は API 4 以下専用です。onBackPressed()API 4 より新しいものすべてで動作するはずです。

@Override
public void onBackPressed(){

    if (mywebview.canGoBack()) {
        mywebview.goBack();
        return;
    }
    super.onBackPressed();      
}
于 2013-02-15T18:23:08.640 に答える
2

onKeyDown は back には機能しません。onBackPressed をオーバーライドする必要があります。

于 2013-02-15T18:22:34.953 に答える