如何使用Android的导航抽屉改变片段 [英] How to change fragments using Android navigation drawer
问题描述
我知道这些类型的问题已经在这里,但我依然没有找到我对这个问题的回答是:
I know these types of question have already been here but still I have not found my answer for this question:
- 在我创建已创建的程序自动在应用程序(AndroidStudio)的应用程序,并用抽屉式导航
下面是我有:
@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;
}
}
和一些在这里:
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));
}
}
我想用的按钮抽屉式导航显示另一个片段。我想用这个code所以,请不要给我任何指导或教程制作自己的抽屉。
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..
现在的问题是,把什么案例1:
案例2:
和案例3:
的情况下,我想打开另一个片段?
感谢名单。
The question is, what to put in case 1:
case 2:
and case 3:
in case I want to open another fragment?
Thanx.
还有一个问题:
-
我如何增加更多的碎片和交易? 这不能正常工作 -
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();
}
推荐答案
您应该只是把一个switch语句插入 onNavigationDrawerItemSelected
方法。
You should just put a switch statement into the onNavigationDrawerItemSelected
method.
这样的事情应该工作:
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
这篇关于如何使用Android的导航抽屉改变片段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!