我正在更新我的应用程序,现在我得到NullPointerException当我按下后退按钮。这是我的主要活动:返回按钮上的NullPointerException按
image http://www.appinfluence.com/wp-content/uploads/2011/11/screenshot1.png image2 http://www.appinfluence.com/wp-content/uploads/2011/11/screenshot2.png
当点击音乐我的第二个活动推出,它具有的WebView嵌套在其中。我有问题让后退按钮正常工作。我希望它回到浏览器中,直到进入第一页,然后返回到第一个活动,一旦它不能再回来。这是我的代码和日志文件。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) {
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
11-03 16:41:14.386: W/dalvikvm(282): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
11-03 16:41:14.486: E/AndroidRuntime(282): FATAL EXCEPTION: main
11-03 16:41:14.486: E/AndroidRuntime(282): java.lang.NullPointerException
11-03 16:41:14.486: E/AndroidRuntime(282): at com.appinfluence.musicpromotion.WebViewActivity.onKeyDown(WebViewActivity.java:315)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.view.KeyEvent.dispatch(KeyEvent.java:1037)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.app.Activity.dispatchKeyEvent(Activity.java:2068)
11-03 16:41:14.486: E/AndroidRuntime(282): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:16 43)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2471)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2441)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.view.ViewRoot.handleMessage(ViewRoot.java:1735)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.os.Handler.dispatchMessage(Handler.java:99)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.os.Looper.loop(Looper.java:123)
11-03 16:41:14.486: E/AndroidRuntime(282): at android.app.ActivityThread.main(ActivityThread.java:4627)
11-03 16:41:14.486: E/AndroidRuntime(282): at java.lang.reflect.Method.invokeNative(Native Method)
11-03 16:41:14.486: E/AndroidRuntime(282): at java.lang.reflect.Method.invoke(Method.java:521)
11-03 16:41:14.486: E/AndroidRuntime(282): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
11-03 16:41:14.486: E/AndroidRuntime(282): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
11-03 16:41:14.486: E/AndroidRuntime(282): at dalvik.system.NativeStart.main(Native Method)
你们对我的webview为null,但为什么?
WebView mWebView;
WebView mWebView = (WebView) findViewById(R.id.webview);
改变这种(OOPS!):
WebView mWebView;
mWebView = (WebView) findViewById(R.id.webview);
那么它的工作(显示页面),我已经通过页面,所以它应该能够回去? –
测试它:)。 'if(mWebView!= null){mWebView.goBack(); }' – Ricky
还需要在canGoBack之前测试 – FunkTheMonk