2016-12-25 3 views
2

Ich werde das sichtbare Navigationselement (wahr oder falsch) als Bedingung festlegen.Navigationselement setVisible

item = (MenuItem)getActivity().findViewById(R.id.find_doctor_nav);mInsertBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) {if(type.equals("Doctor")){ 
        item.setVisible(false); 
       } 
       if(type.equals("Patient")){ 
        item.setVisible(true); 
       } 
       CharSequence text = "User session start..!"; 
       Toast toast = Toast.makeText(getContext(), text, Toast.LENGTH_LONG); 
       toast.setGravity(Gravity.CENTER,0,0); 
       toast.show(); 
      } 
     } 
    }); 

Dies ist mein Stück Code, der ich tun werde. Aber das ist ich Fehler

android.view.MenuItem android.view.MenuItem.setVisible (boolean)‘auf einer Null-Objekt Referenz

ich in Fragmente Klasse machte, aber es ist nicht funktionieren mit meinem Code. Bitte schlage mir eine passende Lösung vor. Danke ....

Antwort

3

sollten Sie NavigationView finden und

//Inside Activity 

public void setItemVisible(boolean visible){ 
    NavigationView navigationView = (NavigationView) findViewById(R.id.navigation_view); 
    toggleVisibility(navigationView.getMenu(), R.id.find_doctor_nav, visible); 
} 

private void toggleVisibility(Menu menu, @IdRes int id, boolean visible){ 
    menu.findItem(id).setVisible(visible); 
} 

Sie können den Artikel aus dem Menü

bearbeiten finden Sie:

Verwenden Sie ein Interface und machen Sie Ihre Aktivität umzusetzen. Dann in Ihrem Fragment, rufen ((NavigationMenuListener)getActivity).setItemVisible(true /*or false*/);

public interface NavigationMenuListener { 
    void setItemVisible(boolean visible); 
} 

Für mehr nur auf Fragmente googeln. Es gibt mehr Antworten.

+0

Aber Sie verwenden "NavigationView" von Desig Library? –

+1

Elvis, das ist nicht Arbeit, weil ich das in "Fragment" setze. zwei Tage vor meinem Code arbeiten, aber dieses Mal ist keine Arbeit. Ich möchte wissen, dies ist ein richtiger Weg, dies zu tun, weil ich neuere in Android bin – Mujahid

+0

Ja, diese android NavigationView. Ich schreibe Navigationscode in der Hauptaktivität, aber ich mache das in Fragment – Mujahid

Verwandte Themen