android - 如何启动 Activity 并显示特定 fragment

标签 android android-fragments

我有一个 MainActivity,它有几个 fragment 被添加然后显示/隐藏。这是因为 MainActivity 使用了 NavigationDrawer。单击抽屉中的项目会导致添加不同的 fragment (如果它们不存在),或者如果存在则显示/隐藏。

我的问题是,如何通过来自不同 Activity 的 Intent 启动我的 MainActivity,并同时显示特定 fragment ?

我是否必须向我的 MainActivity 传递一些额外信息,然后根据该数据添加/显示/隐藏相关 fragment ?还有别的办法吗?

最佳答案

当您创建 Intent 时,您可以给它一个额外的值来确定要加载的 fragment 。

Intent i = new Intent(this, ActivityClass.class);
i.putExtra("frgToLoad", FRAGMENT_A);

// Now start your activity
startActivity(i);

现在,在您的 Activity 中检查额外的部分并加载正确的 fragment :

OnCreate(){
    ...

    int intentFragment = getIntent().getExtras().getInt("frgToLoad");

    switch (intentFragment){
        case FRAGMENT_A:
            // Load corresponding fragment
            break;
        case FRAGMENT_B:
            // Load corresponding fragment
            break;
        case FRAGMENT_C:
            // Load corresponding fragment
            break;
    }
}

关于android - 如何启动 Activity 并显示特定 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36063704/

相关文章:

android - GoogleMap fragment 问题

java - 将 KeyListner 添加到 robot.mousePress 和 mouseRelease

java - 在 onLowMemory 方法中调用 Runtime.gc()

android - 如何避免回车线馈送对

java - 通过 Intent 传递 ArrayList<Double>

java - ViewModelProviders#of(Fragment) 类型错误

java - 避免 Android 在方向更改时自动重新添加我的 fragment

android - RelativeLayout中不能存在循环依赖项吗?

android - Fragment getActivity() 在 Activity JUnit 测试中返回 null

android - 如何刷新充满BaseAdapter的Fragment中的ListView?