我有一个底部导航视图。单击其中一个项目时,我想打开一个活动,而不是 fragment。这是我的代码:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navController = findNavController(navigation_fragment.id)
bottomNavigationView.setupWithNavController(navController)
fusedLocationClient = LocationServices.getFusedLocationProviderClient(this)
userId = intent.getStringExtra("user_id")
bottomNavigationView.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_graph_take_photo -> {
cameraCheckPermission()
}
}
true
}
}
在试图弄清楚如何解决这个问题时,我意识到当执行 bottomNavigationView.setOnItemSelectedListener 方法时,它会使 bottomNavigationView.setupWithNavController(navController) 方法无效。
但我无法弄清楚如何做到这一点,以便当您单击其余的导航菜单项时,一切都像没有我的更改一样
回答1
Using the below method open activity on the bottom navigation menu item and click-
override fun onNavigationItemSelected(item: MenuItem): Boolean {
when (item.getItemId()) {
R.id.navigation_home -> {
val obj_a= Intent(ActivityA@this, ActivityB::class.java)
startActivity(obj_a)
return true
}
R.id.navigation_bills -> {
val obj_b= Intent(ActivityA@this, ActivityC::class.java)
startActivity(obj_b)
return true
}
R.id.navigation_scan -> {
val obj_c = Intent(ActivityA@this, ActivityD::class.java)
startActivity(obj_c)
return true
}
}
return false
}