android - 如何使用特定片段开始活动
问题描述
在我的主要活动中,我有底部导航栏。每个按钮打开一个不同的片段。我在主要活动中的代码如下所示
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)
}
现在我的代码看起来像这样
解决方案
您需要将一些捆绑数据添加到您的意图中,其中包含应该启动哪个片段的信息 https://stackoverflow.com/a/819427/11538132
然后当您收到此捆绑数据时,您可以手动设置您的** profileFragment**
推荐阅读
- javascript - 如果类存在于另一个 div 中,则更改 div 的高度
- python - 如何将类变量/对象重置为其初始状态?
- powershell - 在 Powershell 中合并两个 CSV 文件,但某些输出条目因缺少数据而加倍
- excel - Excel 数据验证公式失败
- node.js - How to set agent.parameters in Dialogflow using fulfillment code?
- java - How to read an environment variable in Quarkus
- git - Git rebase 从一个父提交到一个新父提交之上(没有旧父提交作为其父提交之一)
- kendo-ui - iOS下无法动态设置剑道网格的高度
- laravel - Laravel dispatch a Job after finishing the Job racks up memory and then fails
- javascript - reactjs - 如何在react.JS中将子窗口url放入父窗口?