En una aplicación de Android, quiero mostrar una vista de lista personalizada en un AlertDialog.
¿Cómo puedo hacer esto?
android
android-alertdialog
Brad Larson
fuente
fuente
Respuestas:
Se usa debajo del código para mostrar una lista personalizada en AlertDialog
fuente
De acuerdo con la documentación , hay tres tipos de listas que se pueden usar con
AlertDialog
:Daré un ejemplo de cada uno a continuación.
Lista tradicional de opción única
La forma de hacer una lista tradicional de opción única es utilizarla
setItems
.Versión Java
No hay necesidad de un botón Aceptar porque tan pronto como el usuario hace clic en un elemento de la lista, el control vuelve a
OnClickListener
.Versión Kotlin
Lista de botones de radio
La ventaja de la lista de botones de radio sobre la lista tradicional es que el usuario puede ver cuál es la configuración actual. La forma de hacer una lista de botones de radio es usarla
setSingleChoiceItems
.Versión Java
Codifiqué el elemento elegido aquí, pero puedes seguirlo con una variable de miembro de clase en un proyecto real.
Versión Kotlin
Lista de casillas de verificación
La forma de hacer una lista de casillas de verificación es utilizarla
setMultiChoiceItems
.Versión Java
Aquí codifiqué los elementos de la lista que ya estaban marcados. Es más probable que desee realizar un seguimiento de ellos en un
ArrayList<Integer>
. Vea el ejemplo de documentación para más detalles. También puede configurar los elementos marcadosnull
si siempre desea que todo comience sin marcar.Versión Kotlin
Notas
context
código anterior, no lo usegetApplicationContext()
o obtendrá unIllegalStateException
(vea aquí por qué). En su lugar, obtenga una referencia al contexto de actividad, como conthis
.setAdapter
osetCursor
o pasar en unaCursor
oListAdapter
en elsetSingleChoiceItems
osetMultiChoiceItems
.Para probar todos los ejemplos anteriores, solo tuve un proyecto simple con un solo botón que mostró el cuadro de diálogo al hacer clic:
Relacionado
fuente
RecyclerView
en el diseño para eso.BUTTON_POSITIVE
) o la posición del elemento en el que se hizo clic".Builder.setAdapter(ListAdapter, DialogInterface.OnClickListener)
:which
in listener'sonClick
será igual a la posición del elemento seleccionado.Builder.setOnItemSelectedListener
no tendrá efectoPuedes usar un diálogo personalizado.
Diseño de diálogo personalizado.
list.xml
En su actividad
Editar:
Usando alertdialog
custom.xml
Chasquido
fuente
fuente
ListAdapter
consetSingleChoiceItems
(muy similar a la llamada anterior)Use la
import android.app.AlertDialog;
importación " " y luego escribafuente
show()
hace las dos cosas.Calling this method is functionally identical to: AlertDialog dialog = builder.create(); dialog.show();
eso es directamente de lashow()
documentación del métodoEsto es demasiado simple
fuente
Como principiante, le sugiero que visite http://www.mkyong.com/android/android-custom-dialog-example/
Voy a resumir lo que básicamente hace
Dialog
dialog.show()
método.fuente
En Kotlin:
fuente
Así es como se muestra el cuadro de diálogo de diseño personalizado con un elemento de lista personalizado, se puede personalizar según sus necesidades.
PASO - 1 Cree el diseño de DialogBox, es decir: -
R.layout.assignment_dialog_list_view
PASO - 2 Cree un diseño de elemento de lista personalizado según su lógica empresarial
R.layout.item_assignment_dialog_list_layout
PASO - 3 Cree una clase de modelo de datos de su elección
PASO - 4 Crear adaptador personalizado
}
PASO - 5 Cree esta función y proporcione ArrayList del modelo de datos anterior en este método
Paso - 6 Dar fondo de esquina redonda al cuadro de diálogo
@ drawable / rectangle_round_corner_assignment_alert
fuente
¿No es más fácil hacer que se invoque un método después de la creación de la unidad EditText en un AlertDialog, para uso general?
fuente
fuente