[英]How to set default home Fragment
I've navigation drawer menu with replace content frame, but I don't know how to set a default home fragment.我有带有替换内容框架的导航抽屉菜单,但我不知道如何设置默认的主页片段。
This is my code这是我的代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
menu = getResources().getStringArray(R.array.menu);
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menu);
dList.setAdapter(adapter);
dList.setSelector(R.color.pick);
dList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
dLayout.closeDrawers();
Bundle args = new Bundle();
args.putString("Menu", menu[position]);
Fragment detail = null;
FragmentManager FM = getFragmentManager();
switch (position) {
case 0:
detail = new HomeFragment();
break;
case 1:
detail = new DataBase();
break;
case 2:
detail = new MappingFragment();
break;
case 3:
detail = new HelpFragment();
break;
default:
break;
}
FM.beginTransaction().replace(R.id.content_frame, detail).commit();
}
});
}
I want set HomeFragment to default chosen/home page我想将 HomeFragment 设置为默认选择/主页
default:
detail = new HomeFragment();
break;
The default case is selected when no other cases apply没有其他情况适用时选择默认情况
Thanks for the answer, problem resolved.谢谢解答,问题已解决。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
menu = getResources().getStringArray(R.array.menu);
dLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
dList = (ListView) findViewById(R.id.left_drawer);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menu);
Fragment home = new HomeFragment();
FragmentManager FM = getFragmentManager();
FM
.beginTransaction()
.replace(R.id.content_frame, home)
.commit();
dList.setAdapter(adapter);
dList.setSelector(R.color.pick);
dList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int position, long id) {
dLayout.closeDrawers();
Bundle args = new Bundle();
args.putString("Menu", menu[position]);
Fragment detail = null;
FragmentManager FM = getFragmentManager();
switch (position) {
case 0:
detail = new HomeFragment();
break;
case 1:
detail = new DataBase();
break;
case 2:
detail = new MappingFragment();
break;
case 3:
detail = new HelpFragment();
break;
default:
break;
}
FM.beginTransaction().replace(R.id.content_frame, detail).commit();
}
});
}
在 Main Activity 的 onCreate 方法中添加以下代码:
getFragmentManager().beginTrasaction().replace(r.id.frame_layout, new HomeFragment()).commit();
In the navigation drawer , a better solution would be to add the following code in your onCreate method:在导航抽屉中,更好的解决方案是在onCreate方法中添加以下代码:
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,
new FRAGMENT_CLASS_NAME_HERE()).commit();
navigationView.setCheckedItem(R.id.DRAWE_NAV_ITEM_ID_HERE);
}
This is much simpler than many other options and also selected the nav menu item.这比许多其他选项简单得多,并且还选择了导航菜单项。
Create a setDefaultFragment()
method in onCreate()
:在onCreate()
创建一个setDefaultFragment()
方法:
private void setDefaultFragment() {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new HomeFragment()).commit();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.