【问题标题】:Navigate from Android Activity to Fragment从 Android Activity 导航到 Fragment
【发布时间】:2020-07-23 04:47:50
【问题描述】:

我目前正在使用 Jetpack 导航控制器来管理整个应用中的导航。但是我遇到了一个看起来很简单但我找不到解决方案的情况。

从我的主导航抽屉中,我能够导航到不包含任何片段的活动 (Activity2)。主要活动(MainActivity)构造导航控制器并设置导航。

在不包含任何片段的活动中,我想导航到应用程序另一部分的片段,但是我遇到了几个问题,具体取决于方法。

我首先尝试了一种传统的方法:

FragmentManager fm = getSupportFragmentManager();
MyFragment myFragment = new MyFragment();
fm.beginTransaction().replace(?????????, loginFragment).commit();

在这种情况下,我应该为?????????。

我还尝试在 Activity2 onCreate 中使用 NavController:

NavController navController = Navigation.findNavController(??????, R.id.nav_myFragment);

在这种情况下,我会在 ?????? 中包含什么。

【问题讨论】:

    标签: android android-fragments uinavigationcontroller


    【解决方案1】:

    您可以通过对 kotlin 使用像这样的挂起意图来解决问题

    val pendingIntent = NavDeepLinkBuilder(this.applicationContext)
                    .setGraph(R.navigation.nav_graph)
                    .setDestination(R.id.SecondFragment)
                    .createPendingIntent()
    
                pendingIntent.send()
    

    供java开发者使用

    PendingIntent pendingIntent = new NavDeepLinkBuilder(this.getApplicationContext())
                    .setGraph(R.navigation.nav_graph)
                    .setDestination(R.id.SecondFragment)
                    .createPendingIntent();
    
            try {
                pendingIntent.send();
            } catch (PendingIntent.CanceledException e) {
                e.printStackTrace();
            }
    

    【讨论】:

    • @Squall Huang,不客气
    • 这种方式不能在真机上使用,只能在模拟器上成功。您还有其他解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2012-11-27
    • 2019-02-08
    相关资源
    最近更新 更多