我已经搜索了问题,但是找不到任何东西。让我描述一下我的问题。
我在BottomNavigationView上有3个按钮(主页,用户,历史记录)。然后在其他活动中,我有一个想要进入用户页面的按钮(当然带有BottomnavigationView。
我将向您展示我的代码。它仍然默认所有。我只是不知道如何导航到“用户”页面。
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
val navController = findNavController(R.id.nav_host_fragment)
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
val appBarConfiguration = AppBarConfiguration(
setOf(
R.id.navigation_home, R.id.navigation_user, R.id.navigation_notifications
)
)
setupActionBarWithNavController(navController, appBarConfiguration)
navView.setupWithNavController(navController)
}}
这是我的代码(来自其他片段)
otherFragment.kt
buttonRincian.setOnClickListener {
// i dont know command to go to MainActivity with User page as default selected menu
}
非常感谢您,我希望有人可以帮助我。
答案 0 :(得分:0)
创建一个接口,您的活动将实现该接口。 无论您要在何处更改片段,所有片段都应调用接口的方法。
类似
interface TabChangeListener {
fun onTabChange(tabName : String)
}
活动代码
class Activity : AppCompatActivity(), TabChangeListener {
override fun onTabChange(tabName : String) {
//code to show different tabs
}
}
片段代码
class Frag1 : Fragment {
var listener : TabChangeListener
//somewhere in the code
listener.onTabChange("userTab")
}
别忘了从活动中获取Fragments中TabChangeListener的引用,否则回调将不起作用。