AndroidStudio中,overridefunonOptionsItemSelected(...)无法导航到第二个片段...错误为未设置NavController。
创始人
2024-08-21 10:30:11
0

在调用navigate()方法之前,要确保NavController已设置。以下是可能的解决方法之一:

将导航控制器(NavController)分配给Activity或Fragment:

class MyActivity : AppCompatActivity() { // ... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(layout.main_activity)

    val navController = findNavController(R.id.my_nav_host_fragment)
    setSupportActionBar(findViewById(R.id.toolbar))
    NavigationUI.setupActionBarWithNavController(this, navController)
}

override fun onSupportNavigateUp(): Boolean {
    val navController = findNavController(R.id.my_nav_host_fragment)
    return navController.navigateUp() || super.onSupportNavigateUp()
}

}

确保菜单项与NavController相关联:

override fun onCreateOptionsMenu(menu: Menu): Boolean { menuInflater.inflate(R.menu.my_menu, menu) val navController = findNavController(R.id.my_nav_host_fragment) NavigationUI.onNavDestinationSelected(item, navController) return super.onCreateOptionsMenu(menu) }

当菜单项被选中时,确保切换到正确的目标:

override fun onOptionsItemSelected(item: MenuItem): Boolean { val navController = findNavController(R.id.my_nav_host_fragment) return when (item.itemId) { R.id.action_first_fragment -> { navController.navigate(R.id.firstFragment) true } R.id.action_second_fragment -> { navController.navigate(R.id.secondFragment) true } else -> super.onOptionsItemSelected(item) } }

相关内容

热门资讯

推荐一款!哈糖大菠萝有挂吗(辅... 推荐一款!哈糖大菠萝有挂吗(辅助挂)总是是真的有挂(有挂功能)哈糖大菠萝有挂吗辅助器是一种具有地方特...
信息共享!wepoker辅助器... 信息共享!wepoker辅助器安装包(辅助挂)一贯有挂(有挂总结)1、很好的工具软件,可以解锁游戏的...
一分钟了解!大菠萝免费辅助器(... 一分钟了解!大菠萝免费辅助器(辅助挂)其实存在有挂(有挂实锤)1、金币登录送、破产送、升级送、活动送...
重大通报!wepoker辅助分... 重大通报!wepoker辅助分析器(辅助挂)原来是有挂(有挂秘诀)1、该软件可以轻松地帮助玩家将we...
三分钟了解!aapoker怎么... 三分钟了解!aapoker怎么拿好牌(辅助挂)其实是真的有挂(有挂攻略)在进入aapoker怎么拿好...
必备攻略!wejoker辅助脚... 必备攻略!wejoker辅助脚本(辅助挂)本来有挂(有挂规律)1、实时wejoker辅助脚本透视辅助...
今日重大通报!wpk模拟器(辅... 今日重大通报!wpk模拟器(辅助挂)切实是有挂(的确有挂)1、用户打开应用后不用登录就可以直接使用,...
必看攻略!pokemmo手机版... 必看攻略!pokemmo手机版脚本(辅助挂)原来是真的有挂(有挂详情)1、必看攻略!pokemmo手...
记者发布!wepoker私人局... 记者发布!wepoker私人局透视方法(辅助挂)真是有挂(讲解有挂)1、金币登录送、破产送、升级送、...
教程辅助!hhpoker德州有... 教程辅助!hhpoker德州有挂吗(辅助挂)其实是有挂(有挂方法)1、这是跨平台的hhpoker德州...