2013-08-06 1 views
1

Почему этот код не работает?Событие Android Webview назад

Я искал в stackoverflow, попробовал несколько кодов, и все они не работают.

[MainActivity.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); 
    } 
} 

Когда я нажимаю BackButton в приложение падает.

+0

опубликовать отчет об исключении –

+0

Ошибка отладки: [DEBUG LOG] (http://pastebin.com/q5NBrxKv) –

+0

, какая строка - строка 30 в MainActivity? –

ответ

0

Вам нужно изменить переменную webView, чтобы инициализировать переменную класса вместо воссоздания переменной Webview внутри onCreate().

Изменить эту строку:

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

Для этого:

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

Пробовал, приложение аварий. это как-то связано с этим: WebView webView; –

+0

Какая строка теперь рушится? –

+0

http://pastebin.com/iCiFYFta –

1

Вы использовали локальную переменную WebView webView = (WebView) findViewById(R.id.webview); в onCreate методе.