簡體   English   中英

如何從活動返回到導航底部的特定片段

[英]How to return from activity to a specific fragment in navigation bottom

大家好我正在開發一個 android 應用程序,我需要你的幫助。 在這個應用程序中,我有一個底部導航欄,因此我可以在 4 個片段 A、B、C 和 D 之間進行通信。我將 A 片段作為默認主片段。 問題是,如果我想啟動我的 navigationBottom 活動(A 是 LogInstrong 文本之后的默認主頁片段),我想以片段 C 為例。

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav"
    app:startDestination="@id/account">

這可以通過條件導航來實現,我推薦這篇中等文章: https://medium.com/androiddevelopers/navigation-conditional-navigation-e82d7e4905f0

特別是圍繞此代碼片段的部分(從媒體文章復制粘貼)顯示如何根據共享首選項值更改默認屏幕:

donutListViewModel.isFirstRun().observe(viewLifecycleOwner) { s ->
    if (s == UserPreferencesRepository.Selection.NOT_SELECTED) {
        val navController = findNavController()
        navController.navigate(
            DonutListDirections.actionDonutListToSelectionFragment()
        )
    }
}

歡迎來到 Stackoverflow :)

解決方案在您的第一個活動中添加這些行(您將從該活動移至 BottomNav 類)

`Intent intent = new Intent(YourActivity.this, BottomNavAvtivity.class);
        intent.putExtra("FromMainActivity", "1");
        startActivity(intent);`

接下來,在您的第二個活動(實現 BottomNav 的類)中,在 BottomNavigation class 的 onCreate() 中編寫以下代碼:

Intent i = getIntent();
    String data = i.getStringExtra("FromReservation");

    if (data != null && data.contentEquals("1")) {

      yourBottomNav.setFragment(yourFragment);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM