es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo agregar un evento de clic en el elemento de navegación del cajón en Android Kotlin?

Quiero agregar un evento de clic cuando hago clic en uno de los elementos del cajón de navegación, he utilizado el método onNavigationItemSelected pero no está funcionando, ¿alguna ayuda?

override fun onNavigationItemSelected(item: MenuItem): Boolean {
        TODO("Not yet implemented")
        val id = item.itemId

        if (id == R.id.nav_signout) {
            Toast.makeText(this, "Sign out",  Toast.LENGTH_SHORT).show()
        }

        return true
}

drawer.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:showin="navigationView">
    <group android:checkablebehavior="single">
        <item android:title="Authentication">
            <menu android:checkablebehavior="all">
                <item android:id="@+id/nav_signout" android:icon="@drawable/ic_menu_gallery" android:title="Sign out"></item>
            </menu>
        </item>
    </group>
</menu>
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agregar un evento de clic al hacer clic en un elemento del cajón de navegación, asegúrese de haber inicializado correctamente la vista de navegación y configurarla con el código que llama a onNavigationItemSelected. Aquí hay un ejemplo de implementación:

    1. En su actividad o fragmento, inicialice NavigationView encontrándolo utilizando su ID y configure el listener de navegación:
    val navigationView = findViewById <navigationview>(R.id.navigation_view)
    navigationView.setNavigationItemSelectedListener(this)
    
    1. Implemente el método onNavigationItemSelected y maneje los eventos de clic según sea necesario. Asegúrese de devolver true al final del método para indicar que ha manejado el evento y desea cerrar el cajón.
    override fun onNavigationItemSelected(item: MenuItem): Boolean {
        when (item.itemId) {
            R.id.nav_signout -> {
                // Maneje el clic en el botón de salida
                Toast.makeText(this, "Cierre de sesión", Toast.LENGTH_SHORT).show()
            }
            // agregue más casos para otros elementos en el cajón de navegación
        }
        drawerLayout.closeDrawer(GravityCompat.START)
        return true
    }
    

    Asegúrese de que su archivo XML, drawer.xml, tenga un elemento con el ID nav_signout. Verifique que el diseño y el código sean consistentes y que no haya pasos faltantes o instrucciones conflictivas.

Comments are closed.