Java 如何从活动导航到NavigationDrawer中的特定片段

Java 如何从活动导航到NavigationDrawer中的特定片段,java,android,Java,Android,我的问题是我正在使用带有多个片段的NavigationDrawer。我有一个活动。我试图从活动返回到特定片段。我试图发出一个意向。它可以工作,但由于bundle值不为null,它始终停留在该片段中。因此,如果您有办法使bundle为null,或者您有比意图更好的解决方案,我将不胜感激。谢谢大家 此方法能够切换片段 public void DisplaySelectedScreen(int id) { infoNom = this.getIntent().getExtras();

我的问题是我正在使用带有多个片段的NavigationDrawer。我有一个活动。我试图从活动返回到特定片段。我试图发出一个意向。它可以工作,但由于bundle值不为null,它始终停留在该片段中。因此,如果您有办法使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(字符串名称) 从意图中删除扩展数据

void removeFlags(int标志) 从意图中删除这些标志

意向替换额外费用(意向src) 用给定意图中的额外内容完全替换意图中的额外内容

意向替换附加(捆绑附加) 用给定的附加包完全替换意图中的附加


希望这有帮助

您尝试过这个.getIntent().setExtras(null)吗?没有setExtras()方法!!当您在intent中设置bundle时,是否传递了任何类似intent的键。putExtra(“key”,bundle)当然,我发送了片段的id!!