Dans une application Android, je veux afficher une liste personnalisée dans une boîte de dialogue AlertDialog.
Comment puis-je faire cela?
Dans une application Android, je veux afficher une liste personnalisée dans une boîte de dialogue AlertDialog.
Comment puis-je faire cela?
C'est trop simple
final CharSequence[] items = {"Prendre une photo", "Choisir dans la bibliothèque", "Annuler"};
AlertDialog.Builder builder = new AlertDialog.Builder(MyProfile.this);
builder.setTitle("Ajouter une photo!");
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
if (items[item].equals("Prendre une photo")) {
getCapturesProfilePicFromCamera();
} else if (items[item].equals("Choisir dans la bibliothèque")) {
getProfilePicFromGallery();
} else if (items[item].equals("Annuler")) {
dialog.dismiss();
}
}
});
builder.show();
En tant que débutant, je vous suggérais de consulter http://www.mkyong.com/android/android-custom-dialog-example/
Je vais vous expliquer ce que cela fait essentiellement
Dialog
à l'endroit requisdialog.show()
.Vous pouvez réellement créer un simple tableau avec une boîte de dialogue d'alerte comme ceci.
val sexArray = arrayOf("Homme", "Femme")
val selectedPosition = 0
AlertDialog.Builder(requireContext())
.setSingleChoiceItems(sexArray, 0) { dialog, position ->
val selectedSex = sexArray[position]
}.show()
En Kotlin:
fun showListDialog(context: Context){
// configuration du constructeur d'alerte
val builder = AlertDialog.Builder(context)
builder.setTitle("Choisissez un élément")
// ajouter des éléments à la liste
val listItems = arrayOf("Élément 0","Élément 1","Élément 2")
builder.setItems(listItems) { dialog, which ->
when (which) {
0 ->{
Toast.makeText(context,"Vous avez cliqué sur l'élément 0",Toast.LENGTH_LONG).show()
dialog.dismiss()
}
1->{
Toast.makeText(context,"Vous avez cliqué sur l'élément 1",Toast.LENGTH_LONG).show()
dialog.dismiss()
}
2->{
Toast.makeText(context,"Vous avez cliqué sur l'élément 2",Toast.LENGTH_LONG).show()
dialog.dismiss()
}
}
}
// créer et afficher la boîte de dialogue d'alerte
val dialog = builder.create()
dialog.show()
}
N'est-il pas plus simple de créer une méthode à appeler après la création de l'unité EditText dans une AlertDialog, pour un usage général ?
public static void EditTextListPicker(final Activity activity, final EditText EditTextItem, final String SelectTitle, final String[] SelectList) {
EditTextItem.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setTitle(SelectTitle);
builder.setItems(SelectList, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int item) {
EditTextItem.setText(SelectList[item]);
}
});
builder.create().show();
return false;
}
});
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.