La boîte de dialogue personnaliser, qui a seul le choix des éléments de liste
J'ai créé un Dialogue avec un seul choix des éléments de liste:
final CharSequence[] items = {"Red", "Green", "Blue"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Colors");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
});
AlertDialog alert = builder.create();
alert.show();
Comment puis-je personnaliser la mise en page de la boîte de dialogue de sorte que chaque élément de la liste dans la boîte de dialogue se compose d'une icône et un texte. Comment créer une mise en page personnalisée de la liste dans la boîte de dialogue?
InformationsquelleAutor Leem.fin | 2012-03-23
Vous devez vous connecter pour publier un commentaire.
Étapes pour la Création de la boîte de dialogue personnaliser:
Créer la boîte de dialogue mise en page des fichiers, comme:
Parce que la mise en page dans le
ListView
personnalisé, afin de créer un fichier de mise en page pour leListView
:Créer un personnalisé
Dialog
classePriorityDlg
hérité deDialog
public class PriorityDlg s'étend Dialogue {
}
Pour créer une boîte de dialogue personnalisée
Où
R.style.dlg_priority
ensemble de la boîte de dialogue utilise le fichier de style, il suffit de laisser la boîte de dialogue supprimer la barre de titre, et bien sûr, vous pouvez code pour terminer cet effet:En gros, vous devrez créer votre propre
ListAdapter
parsous-classement d'une des classes d'adaptateurs et de l'offre de
la boîte de dialogue (à l'aide de
builder.setAdapter(...)
). Si vous avez un tableau ouliste des articles/objets, sous-classement
ArrayAdapter
est probablement ce quevous aurez envie de regarder dans.
De votre Carte sous-classe, vous remplacez la
getView(...)
méthode (parmi d'autres) et de remplir les vues de votre mise en page personnalisée, avec les donnéesfourni position dans la liste. Plus spécifiquement, vous aurez envie
pour définir une image à l'encontre d'un
ImageView
et du texte dans uneTextView
.À l'aide de
ListView.setOnItemClickListener()
méthode, nous obtenons la valeur sélectionnée deCheckTextView
Pour créer une boîte de dialogue personnalisée
En gros, vous devrez créer votre propre ListAdapter par un sous-classement de l'Adaptateur disponible en classes et de l'offre, à la boîte de dialogue (à l'aide de
builder.setAdapter(...)
). Si vous disposez d'un tableau ou d'une liste d'items/objets, sous-classement ArrayAdapter est probablement ce que vous aurez envie de regarder dans.De votre Carte sous-classe, vous remplacez la
getView(...)
méthode (parmi d'autres) et de remplir les vues de votre mise en page personnalisée avec les données de l'fournis position dans la liste. Plus spécifiquement, vous devrez définir une image par rapport à une ImageView et de texte dans un TextView.Un assez bon tutoriel qui explique comment mettre en œuvre une coutume ArrayAdapter, et se trouve être proche de ce que vous essayez d'accomplir, peut être trouvé ici. Il montre également comment utiliser la ViewHolder/RowWrapper concept.