0

I have added the nav graph fragment to the main activity xml. When I try to use the navcontroller to navigate from a fragment to another in MainActivity.kt I get an error that says that the view does not have a NavController set at androidx.navigation.Navigation.findNavController. I will leave the code from MainActivity.kt below:

class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding
    private  var navController: NavController? = null
    private lateinit var mToolbar: androidx.appcompat.widget.Toolbar
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
        navController = Navigation.findNavController(view)
        mToolbar = findViewById(R.id.main_toolbar)
        setSupportActionBar(mToolbar)
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean {
        super.onCreateOptionsMenu(menu)
        menuInflater.inflate(R.menu.main_menu, menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.settingsFragment -> navController!!.navigate(R.id.view_settings)
        }
        return true
    }
}
John Shelby
  • 87
  • 2
  • 9

0 Answers0