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.
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
- Cree un proyecto de Android Studio de actividad vacío. Y seleccione Java como lenguaje de programación.
- Consulte Android | ¿Cómo crear/comenzar un nuevo proyecto en Android Studio? para saber cómo crear un proyecto de Android Studio de actividad vacía.
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:
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:
- 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