2017-09-19 1 views
0

HI Ich möchte die Sichtbarkeit eines Elements der Nav-Schublade sichtbar, wenn ich zu den Einstellungen von nav Schublade gehen und den Schalter in den Einstellungen einschalten . HierIch habe Probleme mit der Kontrolle der Sichtbarkeit von nav Schubladenelement von einer anderen Aktivität mit Schalter

ist der Screenshot:

Here is the ScreenShot.

ich sichtbar App Manager in fortgeschrittenen unter den Einstellungen will, aber nur, wenn ich den Schalter auf von Einstellungen Aktivität.

Hier ist die Methode, die ich von Einstellungen der Hauptaktivität aufrufen, um das Element zu sehen.

public void app_manager() { 
    nav_Menu = navigationView.getMenu(); 
    MenuItem item = nav_Menu.findItem(R.id.app_manager); 
    item.setVisible(true); 
} 

settings.java:

MainActivity mainActivity = new MainActivity(); 
mainActivity.app_manager(); 

Wird für jede Hilfe dankbar sein.

hier ist die logcat:

Process:com.example.lenovo.connectiontest, PID: 3611 
                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Menu android.support.design.widget.NavigationView.getMenu()' on a null object reference 
                       at com.example.lenovo.connectiontest.Activity.MainActivity.app_manager(MainActivity.java:205) 
+0

Sie können kein Objekt einer Aktivität erstellen und erwarten, dass es den Inhalt ändert. Android funktioniert nicht so –

+0

dann wie kann ich meine Lösung bekommen @SamuelRobert –

+0

Was ist Settings.java Datei? Ist es eine andere Aktivität? –

Antwort

0

Navigationsleiste Ansicht, die eine Listenansicht oder Recyclerview enthält, die einen Adapter hat. Sie müssen den Adapter benachrichtigen, nachdem Sie eine UI-Komponente in Navigationsschubladen-Elementen aktualisiert haben.

Wenn Sie eine benutzerdefinierte Navigationsleiste erstellen möchten, sollten Sie die folgenden Schritte aus:

  1. erstellen boolean Feld mit dem Namen ‚isVisible‘ in Ihrer Navigationsleiste Modell (ex: MenuItem).
  2. Wenn Sie das Feld 'isVisible' ändern, müssen Sie den Navigation Drawer-Adapter benachrichtigen.
+0

zu verarbeiten. Es enthält weder eine Listenansicht noch eine Recycler-Ansicht. Ich verwende NavigationView.OnNavigationItemSelectedListener –

Verwandte Themen