1

このコードが機能しないのはなぜですか?

私はstackoverflowで検索し、いくつかのコードを試しましたが、すべて機能しません。

[メインアクティビティ.java]

package com.example.jquery;

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

public class MainActivity extends Activity {
    WebView webView;
    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

        WebView webView = (WebView) findViewById(R.id.webview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webView.setWebViewClient(new WebViewClient());
        webView.loadUrl("file:///android_asset/www/framework/lib/homescreen.html");

        return;
    }
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
            webView.goBack();
            return true;
        }
        else
        {
            finish();
        }
        return super.onKeyDown(keyCode, event);
    }
}

戻るボタンを押すと、アプリがクラッシュします。

4

2 に答える 2

0

onCreate() 内で Webview 変数を再作成する代わりに、webView 変数を変更してクラス変数を初期化する必要があります。

この行を変更します。

WebView webView = (WebView) findViewById(R.id.webview);

これに:

webView = (WebView) findViewById(R.id.webview);
于 2013-08-06T14:44:07.777 に答える