首页 > 解决方案 > 如何使用特定片段开始活动

问题描述

在我的主要活动中,我有底部导航栏。每个按钮打开一个不同的片段。我在主要活动中的代码如下所示

class MainActivity : AppCompatActivity() {

private val homeFragment = HomeFragment()
private val calendarFragment = CalendarFragment()
private val addFragment = AddFragment()
private val plannerFragment = PlannerFragment()
private val profileFragment = ProfileFragment()


override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)


    replaceFragment(homeFragment)

    nav_view.setOnNavigationItemSelectedListener{
        when(it.itemId){
            R.id.homeButton -> replaceFragment(homeFragment)
            R.id.calendarButton -> replaceFragment(calendarFragment)
            R.id.addButton -> replaceFragment(addFragment)
            R.id.plannerButton -> replaceFragment(plannerFragment)
            R.id.profileButton -> replaceFragment(profileFragment)
        }
        true
    }
}

private fun replaceFragment(fragment: Fragment){
    if (fragment!=null){
        val transaction  = supportFragmentManager.beginTransaction()
        transaction.replace(R.id.fragmentContainer, fragment)
        transaction.commit()
    }
}


} 

在 profileFragment 中,我有一个按钮,可以打开一个名为 EditProfile 的新活动。在该活动中,我有一个名为 goBackToProfileButton 的按钮,我想设置一个将返回到 mainactivity 的侦听器,但我希望打开 profileFragment 而不是默认的片段,即 homeFragment。

    goBackToProfileButton.setOnClickListener {

        val intent = Intent(this,MainActivity::class.java)
        startActivity(intent)

    }

现在我的代码看起来像这样

标签: android

解决方案


您需要将一些捆绑数据添加到您的意图中,其中包含应该启动哪个片段的信息 https://stackoverflow.com/a/819427/11538132

然后当您收到此捆绑数据时,您可以手动设置您的** profileFragment**


推荐阅读