Je suis en train de mettre à jour mon application et maintenant je reçois NullPointerException lorsque j'appuie sur le bouton de retour. Voici mon activité principale:NullPointerException sur le bouton Précédent Appuyez sur
image http://www.appinfluence.com/wp-content/uploads/2011/11/screenshot1.png image2 http://www.appinfluence.com/wp-content/uploads/2011/11/screenshot2.png
En cliquant la musique de ma deuxième activité est lancée et il a un WebView niché à l'intérieur. J'ai des problèmes pour obtenir le bouton de retour pour fonctionner correctement. Je m'attends à ce qu'il revienne dans le navigateur jusqu'à la première page et ensuite à la première activité une fois qu'il ne pourra plus revenir en arrière. Voici mon code et mon fichier journal.
@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)
Vous avez raison, mon webview est nul, MAIS POURQUOI?
WebView mWebView;
WebView mWebView = (WebView) findViewById(R.id.webview);
changé à ce (OOPS!):
WebView mWebView;
mWebView = (WebView) findViewById(R.id.webview);
Eh bien, cela fonctionne (affichage des pages) et j'ai parcouru les pages afin qu'il devrait être en mesure de revenir en arrière? –
Testez-le :). 'if (mWebView! = null) {mWebView.goBack(); } ' – Ricky
doivent également tester avant le canGoBack – FunkTheMonk