0

私はNavigationDrawerからandroid.support:designライブラリを使用していましたが、うまくいきましたが、明らかにmikepenzによってMaterialDrawerに切り替わりました。しかし、今私は立ち往生しています。NavigationDrawerにフラグメントを動的に追加する

は、私がandroid.support:designライブラリで、私はandroid.support:designライブラリーで行った動的ようFragmentを追加したい、私はこのような設定からFragmentsを追加/削除するために、SharedPreferences使用:

今、私は同じことを行うことができますどのように
mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
    @Override 
    public boolean onNavigationItemSelected(MenuItem menuItem) { 
     mDrawerLayout.closeDrawers(); 
     if (savedPreferences.getBoolean("add_frag", true)) { 
      if (menuItem.getTitle() == "frag") { 
      FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction(); 
      xfragmentTransaction.replace(R.id.containerView, new fragFragment()).commit(); 
     } 
    } 
} 

MaterialDrawer

switch文またはそのような何か使用してフラグメントを変更するには、多くの方法があります。

if (position == 0) {      
    FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction(); 
    fragmentTransaction.replace(R.id.containerView, new fragFragment()).commit(); 
} 

しかし、これらの文は、SharedPreferencesを使用してフラグメントを追加するには役立ちません。私が上記の文FragmentSharedPreferencesを試しても、これは変わりません。

Please HELP!

答えて

2

コードは現在のものとよく似ています。

最初に引き出しを作成し、いくつかの項目を追加してリスナーを追加します。このリスナーは、あなたは何が必要機能を実行することができます:

//Create the drawer 
new DrawerBuilder() 
    .withActivity(this) 
    .withToolbar(toolbar) 
    .withAccountHeader(headerResult) //set the AccountHeader we created earlier for the header 
    .addDrawerItems(
      new PrimaryDrawerItem().withName("Item 1").withIdentifier(1), 
      new PrimaryDrawerItem().withName("Item 2").withIdentifier(2) 
    ) 
    .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() { 
     @Override 
     public boolean onItemClick(View view, int position, IDrawerItem drawerItem) { 
      if (drawerItem != null) { 
       if (drawerItem.getIdentifier() == 1) { 
        //do what you want to do for the first item 
       } else if (drawerItem.getIdentifier() == 2) { 
        //do whatever you want to do for the second item 
       } 
      } 

      return false; 
     } 
    }) 
    .withSavedInstance(savedInstanceState) 
    .build(); 

あなたの側に他のいくつかの混乱があるかもしれません。 SharedPreferenceは、アプリケーションにデータを保存します。これは、一般にMaterialDrawer、またはFragmentとはあまり関係ありません。

+0

基本的に私はSharedPreferencesを使用してナビゲーションドロウを設定しています。 –

関連する問題