[英]Open a new Activity with chosen Fragment on click
这就是我想要实现的目标:
它可以实现吗? 我尝试将 startActivity 和 getSupportFragmentManager (等)作为我的 onClick 方法,但没有用,也许还有另一种方法?
在活动 B 中创建一个方法(java 中的静态方法,kotlin 中的同伴)来创建意图:
companion object {
const val ARG_FRAGMENT_TO_LOAD = "argFragment"
fun newIntent(context:Context, fragmentTagToLoad:String): Intent {
return Intent(context, ActivityB::class.java).apply {
putString(ARG_FRAGMENT_TO_LOAD, fragmentTagToLoad)
})
}
}
然后,在活动 A 中,您可以使用此意图启动活动 B。
myButton?.setOnClickListener {
startActivity(ActivityB.newIntent(this, SomeFragmentToLoad.ARG_TAG))
}
然后,再次在活动 B 中,您将在意图中收到此参数,以便您可以处理它。 它通常在 onCreate() 内部完成:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val fragmentTagToLoad = intent.getStringExtra(ARG_FRAGMENT_TO_LOAD) ?: ""
if(fragmentToLoad.isNotEmpty() {
// Use fragment manager to load fragment into container.
}
...
}
最后,在活动 B 中,您可以使用参数使用(通常支持)片段管理器加载所需的片段。
当然,您应该将 ARG_TAG 定义为 SomeFragmentToLoad 中的字符串常量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.