1
주 클래스에서 NavigationView
에 대한 수신기를 설정해야합니다. 그러나 주된 것은 많은 것들을 포함 할 것이고, 가능한 한 가장 "분리 된"것으로하고 싶습니다. 내가 필요한다고 가정외부 Java 수신기에서 getSupportFragmentManager에 액세스하는 방법
navigationView.setNavigationItemSelectedListener(new NavigationListener());
문제는 내가 getSupportFragmentManager
전화를 가지고 온다, 그러나 accesible 아니므 :
그래서 내가 좋아하는 뭔가 자신의 자바 파일에 청취자를 할 것입니다 다음과 같이하십시오 : context.getSupportFragmentManager
"작업"을하십시오.
하지만 컨텍스트를 얻는 방법을 모르겠습니다.
어떻게받을 수 있습니까?
ListenerClass : 당신은 그냥 생성자 PARAM로 FragmentActivity
NavigationListener
의 인스턴스를 전달할 수
public class NavigationListener implements NavigationView.OnNavigationItemSelectedListener {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
boolean fragmentTransaction = false;
String TAG = "NavigationViewListener";
Logger.init(TAG);
Fragment fragment = null;
switch (item.getItemId()){
case R.id.nav_home:
fragment = new FragmentHome();
fragmentTransaction = true;
break;
case R.id.nav_map:
fragment = new FragmentMap();
fragmentTransaction = true;
break;
case R.id.nav_log_out:
Logger.d("Pulsada opnción de LogOut");
break;
}
if(fragmentTransaction){
getSupportFragmentManager().beginTransaction()
.replace(R.id.main_content, fragment)
.commit();
item.setChecked(true);
getSupportActionBar().setTitle(item.getTitle());
}
}
}
는 완벽했다. 감사! – Shudy