2016-12-25 17 views
2

일부 조건으로 표시되는 탐색 항목 (true 또는 false)을 설정합니다.탐색 항목 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(); 
      } 
     } 
    }); 

이것은 제가 수행 할 코드입니다. 그러나 이것은 내가 조각 클래스에서하고 있어요

null 객체 참조에 '오류를 나에게

android.view.MenuItem android.view.MenuItem.setVisible (부울)을 제공하지만, 그것은 작동하지 않을 것 내 코드로. 나에게 적절한 해결책을 제안 해주세요. 감사합니다 ....

답변

3

당신은 NavigationView을 발견해야하고

//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); 
} 

당신은 메뉴

편집에서 항목을 찾을 수 있습니까 :

사용 Interface을하고 활동을 구현합니다. 그런 다음 Fragment에, 단지 조각에 구글, 자세한 내용은 ((NavigationMenuListener)getActivity).setItemVisible(true /*or false*/);

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

를 호출합니다. 더 많은 답변이 있습니다.

+0

하지만 Desig 라이브러리의 'NavigationView'를 사용하고 계십니까? –

+1

Elvis, "fragment"에서 설정 했으므로 이것은 작동하지 않습니다. 내 코드 작업 2 일 전에는이 시간이 작동하지 않습니다. 나는 이것이 올바른 방법임을 알고 싶다. 나는 안드로이드에서 더 최신이기 때문에 – Mujahid

+0

네,이 안드로이드 NavigationView. 나는 주 활동에 내비게이션 코드를 쓰고 있는데, 나는 조각으로 이것을한다. – Mujahid