Diálogo de alerta con SingleItemSelection en Android

Los diálogos de alerta son los elementos de la interfaz de usuario que aparecen cuando el usuario realiza algunas acciones cruciales con la aplicación. Estos son los elementos similares a ventanas que pueden contener elementos múltiples o únicos para seleccionar de la lista o pueden tener el mensaje de error y algunos botones de acción. En este artículo, se ha discutido cómo implementar los diálogos de alerta con la selección de un solo elemento. Eche un vistazo a la siguiente imagen para diferenciar los cuadros de diálogo de alerta con botones de acción y selección de un solo elemento.

Alert Dialog with SingleItemSelection in Android

Pasos para implementar el diálogo de alerta con la selección de un solo artículo

Paso 1: Cree un proyecto de Android Studio de actividad vacío

Paso 2: trabajar con el archivo activty_main.xml

  • En el archivo activity_main.xml que contiene un botón y TextView. Botón para abrir el cuadro de diálogo de alerta con una sola lista de selección de elementos. Y vista de texto que muestra una vista previa del elemento seleccionado, que es seleccionado por el usuario.
  • Invoque el siguiente código de diseño dentro del archivo activity_main.xml, que contiene solo un elemento Button y TextView.

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity"
    tools:ignore="HardcodedText">
 
    <Button
        android:id="@+id/openAlertDialogButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="64dp"
        android:text="OPEN ALERT DIALOG"
        android:textSize="18sp" />
 
    <TextView
        android:id="@+id/selectedItemPreview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="16dp"
        android:text="Selected Item is : "
        android:textSize="18sp" />
 
</LinearLayout>

Interfaz de usuario de salida:

Alert Dialog with SingleItemSelection in Android

Paso 3: trabajar con el archivo MainActivity.java

  • Es necesario comprender las partes del AlertDialog con la selección de un solo elemento. Echa un vistazo a la siguiente imagen:

Alert Dialog with SingleItemSelection in Android

  • La función utilizada para implementar la selección de un solo elemento es setSingleChoiceItems, que se analiza a continuación:

Sintaxis:

setSingleChoiceItems (listItems,checkItem[0], DialogInterface.OnClickListener oyente){}

Parámetros:

listItems: son los elementos que se mostrarán en el cuadro de diálogo de alerta.

checkItems: es el arreglo booleano que mantiene los valores seleccionados como verdaderos y los valores no seleccionados como falsos.

DialogInterface.OnMultiChoiceClickListener(): que es una devolución de llamada cuando se produce un cambio en la selección de elementos.

  • Invoque el siguiente código. Los comentarios se agregan dentro del código para una mejor comprensión.

Java

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    // Button and TextView instances
    Button bOpenAlertDialog;
    TextView tvSelectedItemPreview;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // register both UI elements with their appropriate IDs.
        bOpenAlertDialog = findViewById(R.id.openAlertDialogButton);
        tvSelectedItemPreview = findViewById(R.id.selectedItemPreview);
 
        // single item array instance to store
          // which element is selected by user
        // initially it should be set to zero meaning
          // none of the element is selected by default
        final int[] checkedItem = {-1};
 
        // handle the button to open the alert dialog with
          // the single item selection when clicked
        bOpenAlertDialog.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                // AlertDialog builder instance to build the alert dialog
                AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
 
                // set the custom icon to the alert dialog
                alertDialog.setIcon(R.drawable.image_logo);
 
                // title of the alert dialog
                alertDialog.setTitle("Choose an Item");
 
                // list of the items to be displayed to
                  // the user in the form of list
                // so that user can select the item from
                final String[] listItems = new String[]{"Android Development", "Web Development", "Machine Learning"};
 
                // the function setSingleChoiceItems is the function which builds
                // the alert dialog with the single item selection
                alertDialog.setSingleChoiceItems(listItems, checkedItem[0], new DialogInterface.OnClickListener() {
                    @SuppressLint("SetTextI18n")
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
 
                        // update the selected item which is selected by the user
                        // so that it should be selected when user opens the dialog next time
                        // and pass the instance to setSingleChoiceItems method
                        checkedItem[0] = which;
 
                        // now also update the TextView which previews the selected item
                        tvSelectedItemPreview.setText("Selected Item is : " + listItems[which]);
 
                        // when selected an item the dialog should be closed with the dismiss method
                        dialog.dismiss();
                    }
                });
 
                // set the negative button if the user
                  // is not interested to select or change
                // already selected item
                alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
 
                    }
                });
 
                // create and build the AlertDialog instance
                  // with the AlertDialog builder instance
                AlertDialog customAlertDialog = alertDialog.create();
 
                // show the alert dialog when the button is clicked
                customAlertDialog.show();
            }
        });
    }
}

Salida: ejecutar en el emulador

Publicación traducida automáticamente

Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *