I know these types of question have already been here but still I have not found my answer for this question:
- I have created an application and used navigation drawer that has been created AUTOMATICALLY by the app (AndroidStudio)
Here’s what I have:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mNavigationDrawerFragment = (NavigationDrawerFragment) getFragmentManager().findFragmentById(R.id.navigation_drawer); mTitle = getTitle(); // Set up the drawer. mNavigationDrawerFragment.setUp( R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout)); } @Override public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments FragmentManager fragmentManager = getFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, PlaceholderFragment.newInstance(position + 1)) .commit(); } public void onSectionAttached(int number) { switch (number) { case 1: break; case 2: break; case 3: break; } }
And some more here:
public static PlaceholderFragment newInstance(int sectionNumber) { PlaceholderFragment fragment = new PlaceholderFragment(); Bundle args = new Bundle(); args.putInt(ARG_SECTION_NUMBER, sectionNumber); fragment.setArguments(args); return fragment; } public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } @Override public void onAttach(Activity activity) { super.onAttach(activity); ((MainActivity) activity).onSectionAttached( getArguments().getInt(ARG_SECTION_NUMBER)); } }
I want to display another fragment using the button in navigation drawer. I want to use this code so please do not send me any guides or tutorials making their own drawers..
The question is, what do I put in case 1:
case 2:
and case 3:
in case I want to open another fragment?
Thanks.
One more question:
How do I add more fragments and transactions? This doesn’t work-
Fragment fragment = new MyFragment1(); Fragment frag = new MyFragment2(); FragmentManager fragmentManager = getFragmentManager(); switch(position) { case 0: fragment = new MyFragment1(); break; case 1: frag = new MyFragment2(); break; } fragmentManager.beginTransaction() .replace(R.id.container, fragment).commit();
Advertisement
Answer
You should just put a switch statement into the onNavigationDrawerItemSelected
method.
Something like this should work:
public void onNavigationDrawerItemSelected(int position) { // update the main content by replacing fragments Fragment fragment; FragmentManager fragmentManager = getFragmentManager(); // For AppCompat use getSupportFragmentManager switch(position) { default: case 0: fragment = new MyFragment1(); break; case 1: fragment = new MyFragment2(); break; } fragmentManager.beginTransaction() .replace(R.id.container, fragment) .commit(); }
This is just done quickly but I think it should work