package com.example.myapplication
import android.os.Bundle import com.google.android.material.snackbar.Snackbar import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import android.view.Menu import android.view.MenuItem import com.example.myapplication.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
appBarConfiguratio
It looks like your code got cut off. I'll help you complete the onCreate
method and provide a full example of the MainActivity
class. Here's the continuation and completion of your MainActivity
class:
package com.example.myapplication
import android.os.Bundle
import com.google.android.material.snackbar.Snackbar
import androidx.appcompat.app.AppCompatActivity
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.navigateUp
import androidx.navigation.ui.setupActionBarWithNavController
import android.view.Menu
import android.view.MenuItem
import com.example.myapplication.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
private lateinit var appBarConfiguration: AppBarConfiguration
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
setSupportActionBar(binding.toolbar)
val navController = findNavController(R.id.nav_host_fragment_content_main)
appBarConfiguration = AppBarConfiguration(navController.graph)
setupActionBarWithNavController(navController, appBarConfiguration)
binding.fab.setOnClickListener { view ->
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_main, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_settings -> {
// Handle settings action
true
}
else -> super.onOptionsItemSelected(item)
}
}
override fun onSupportNavigateUp(): Boolean {
val navController = findNavController(R.id.nav_host_fragment_content_main)
return navController.navigateUp(appBarConfiguration) || super.onSupportNavigateUp()
}
}
Binding Initialization: The ActivityMainBinding
is used to bind the views in the activity_main.xml
layout file. This is initialized in the onCreate
method.
Toolbar Setup: The setSupportActionBar
method sets up the toolbar as the app bar for the activity.
Navigation Controller: The findNavController
method is used to get the navigation controller from the navigation host fragment. The AppBarConfiguration
is set up with the navigation graph.
Floating Action Button (FAB): The FAB is set up with a click listener that shows a Snackbar
message.
Options Menu: The onCreateOptionsMenu
method inflates the menu resource file (menu_main.xml
). The onOptionsItemSelected
method handles menu item clicks.
Navigation Up: The onSupportNavigateUp
method handles the navigation up action, which is part of the navigation component.
Make sure you have the necessary resources and dependencies in your project, such as the navigation component and the material design library. Also, ensure that your activity_main.xml
layout file includes the necessary views like the toolbar and the FAB.