1
メインクラスのNavigationView
のリスナーを設定する必要があります。しかし、メインは、たくさんのものを含んでおり、私はそれを可能な限り「分離した」ものにしたいと思っています。私は私がする必要があるとし、外部JavaリスナーのgetSupportFragmentManagerへのアクセス方法
navigationView.setNavigationItemSelectedListener(new NavigationListener());
問題は、私はgetSupportFragmentManager
を呼び出すために持っていることを、来る、しかしづけしないので、:
だから私のようなものに、自分のjavaファイルでリスナーを行います次のようなことをしてください:context.getSupportFragmentManager
irを "仕事"にする。
しかし、私はどのようにコンテキストを取得するのか分かりません。
どうすれば入手できますか?
ListenerClass:
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