Drawer
すべての活動をどのように共有しますか?
lister: onNavigationItemSelected
ofでは、setNavigationItemSelectedListener
を取得id
してそこに移動できます。私が探しているのは次のようなものです:
private void initDrawerLayout() {
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navView = (NavigationView) findViewById(R.id.navigation_view);
navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
Intent intent;
int id = menuItem.getItemId();
switch(id) {
case R.id.home:
case R.id.drawer_home:
// call activity instead of adding/replacing fragment
return true;
case R.id.drawer_gallery:
// call activity instead of adding/replacing fragment
intent = new Intent(MainActivity.this, GalleryActivity.class);
startActivity(intent);
return true;
case R.id.drawer_about:
// call activity instead of adding/replacing fragment
intent = new Intent(MainActivity.this, AboutActivity.class);
startActivity(intent);
return true;
...
}
...
すべてのmenuItems
add/replaceを作成できることはわかっていますFragment
が、フラグメントとメモリ管理の処理は大きな苦痛です。
代わりに、選択/クリックするたびmenuItem
に を呼び出す必要がありますActivity
。つまり、それぞれMainMenuItem
が持つ必要がActivity
あり、それらは複雑なレイアウトを持つフラグメントを保持します。
私がやりたいのは、各メインメニュー項目を
Activity
ではなく にすること だけFragment
です。そして、これらすべての活動は同じものを共有できます
DrawerNavigation
。
これは推奨される方法ですか?Fragments
それとも、アイテムのクリックに対して常に追加しNavigationDrawer
ますか??
そこからすべてのアクティビティを追加NavigationView
しBaseActivity
て拡張する必要がありますか??