[英]How to navigate to Specific Fragment in NavigationDrawer from an Activity
我的问题是我正在将NavigationDrawer与多个片段一起使用。 我有一个活动。 我正在尝试从活动返回到“特定片段”。 我试图发送一个意图。 它可以工作,但是由于bundle的值不为null,它始终停留在该片段中。 因此,如果您有办法使捆绑商品为空,或者您有一个比意图更好的解决方案,我将不胜感激。 谢谢大家
该方法能够切换片段
public void DisplaySelectedScreen(int id) {
infoNom = this.getIntent().getExtras();
if (infoNom != null) {
id = Integer.valueOf(infoNom.getString("Fragment"));
}
infoNom = null ; //not Working
Fragment fragment = null;
switch (id) {
case R.id.nav_home:
fragment = new Home();
break;
case R.id.nav_info:
fragment = new Informations();
break;
case R.id.nav_cmd:
fragment = new Commandes();
break;
case R.id.nav_panier:
fragment = new Cart();
break;
case R.id.nav_contact:
fragment = new Contact();
break;
case R.id.nav_about_us:
fragment = new About_Us();
break;
case R.id.nav_logout:
ParseUser.logOut();
Intent intent = new Intent(Main.this, Welcome.class);
startActivity(intent);
break;
}
if (fragment != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, fragment);
ft.commit();
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
您可以使用以下方法清除捆绑包:
getIntent().removeExtra("key");
希望对您有帮助!
替换额外物品的方法
void removeExtra(String name)从意图中删除扩展数据。
void removeFlags(int flags)从意图中删除这些标志。
Intent replaceExtras(Intent src)用给定Intent中的附加功能完全替换Intent中的附加功能。
Intent replaceExtras(Bundle extras)用给定的Extras捆绑包完全替换Intent中的Extras。
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.