Ich verwende die Navigationsschubladenaktivität von Android Studio und möchte eine Snackbar immer dann anzeigen, wenn ich auf eine der Schaltflächen in der Schublade klicke, aber wenn ich darauf klicke, stürzt die App ab . Hier ist eine vereinfachte Version des Codes ausgeführt werden, wenn ich auf einer der Navigationstasten klicken:Meine App stürzt ab, wenn ich versuche, eine Snackbar zu zeigen
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
int id = item.getItemId();
if (id == R.id.nav_playstore) {
Snackbar.make(findViewById(R.id.nav_playstore), "This app is not available on the Play Store yet", Snackbar.LENGTH_LONG).show();
}
Ich denke, das Problem ist, dass ich findViewById(R.id.nav_playstore)
mit etwas ersetzen soll sonst, aber ich bin mir nicht sicher, was ich Stellen Sie stattdessen dort. Wenn Sie mehr Informationen benötigen, kann ich Ihnen etwas geben. Thanks :)
Edit: Hier ist der Stacktrace:
08-03 10:03:45.658 20870-20870/ca.davesautoservice.davesautoservice E/AndroidRuntime: FATAL EXCEPTION: main
Process: ca.davesautoservice.davesautoservice, PID: 20870
java.lang.NullPointerException
at android.support.design.widget.Snackbar.<init>(Snackbar.java:183)
at android.support.design.widget.Snackbar.make(Snackbar.java:215)
at ca.davesautoservice.davesautoservice.MainActivity.onNavigationItemSelected(MainActivity.java:106)
at android.support.design.widget.NavigationView$1.onMenuItemSelected(NavigationView.java:151)
at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
at android.support.v7.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:84)
at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:152)
at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
at android.support.design.internal.NavigationMenuPresenter$1.onClick(NavigationMenuPresenter.java:318)
at android.view.View.performClick(View.java:4463)
at android.view.View$PerformClick.run(View.java:18770)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5333)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:828)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:644)
at dalvik.system.NativeStart.main(Native Method)
post die Stacktrace der Exception – Blackbelt
Sie einen Blick passieren sollte (und kein Menü) ... So ersetzen findViewById (R.id.nav_playstore) von einem anderen sehen Sie, dass Sie haben (wie: findViewById (R.id.my_text_view) – W0rmH0le
Führen Sie 'findViewById (...)' Zeug in 'onCreate()'. Verwenden Sie Ihre Ansichten, wo immer Sie dann wollen. Außerdem der erste Parameter von 'Snackbar. make (...) 'sollte die Containeransicht für die' Snackbar' Nachricht sein, sonst nichts. –