En Android, AlertDialog es un mensaje de alerta simple que aparece en forma de una ventana emergente que consta de un título, un mensaje y dos botones, a saber, botones positivo y negativo. El usuario básicamente tiene que hacer clic en uno de los dos botones para responder al mensaje en AlertDialog. El botón negativo generalmente se titula «cancelar» o «no» o «continuar» y el botón positivo es un texto afirmativo. Esto se debe a que el botón negativo por defecto tiene la funcionalidad de solo salir de AlertDialog y no realizar ninguna acción, mientras que un botón positivo debe programarse para realizar cualquier acción e incluso salir de AlertDialog.
Entonces, en este artículo, le mostraremos cómo puede evitar salir o cerrar AlertDialog en Android. Siga los pasos a continuación una vez que el IDE esté listo.
Implementación paso a paso
Paso 1: crea un nuevo proyecto en Android Studio
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Demostramos la aplicación en Kotlin, así que asegúrese de seleccionar Kotlin como idioma principal al crear un nuevo proyecto.
Paso 2: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml . Mantenga el archivo de diseño intacto o predeterminado, ya que no necesitaremos ni agregaremos ningún elemento nuevo.
XML
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
Paso 3: trabajar con el archivo MainActivity.kt
Vaya al archivo MainActivity.kt y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.kt . Se agregan comentarios dentro del código para comprender el código con más detalle.
Kotlin
package org.geeksforgeeks.preventdialogfromclosing import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.Toast import androidx.appcompat.app.AlertDialog class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // Declaring and initializing a // Builder for the Alert Dialog val mBuilder = AlertDialog.Builder(this) .setTitle("TITLE") .setMessage("MESSAGE") .setPositiveButton("Positive", null) .setNegativeButton("Negative", null) .show() // Changing Positive Button properties such // that something happens on click val mPositiveButton = mBuilder.getButton(AlertDialog.BUTTON_POSITIVE) mPositiveButton.setOnClickListener { // Do something // As we do not want the Alert Dialog to close, // we will only display a Toast and do nothing else. Toast.makeText(this, "Can't Exit", Toast.LENGTH_SHORT).show() } } }
Producción:
Puede ver que cuando se hace clic en el botón positivo, AlertDialog no se cierra.
Publicación traducida automáticamente
Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA