J'ai cherché autour de vous pour savoir comment créer une fenêtre contextuelle ou une boîte de dialogue comportant 4 options à choisir.
Je vois cette image sur le site de développeur Android:
Est-ce que quelqu'un sait comment coder quelque chose comme celui de droite? Je n'ai besoin d'aucune icône à côté de mon texte, il me suffit de pouvoir sélectionner 4 options.
Vous pouvez créer un tableau CharSequence
avec les options que vous souhaitez afficher, puis le passer à un AlertDialog.Builder
Avec la méthode setItems(CharSequence[], DialogInterface.OnClickListener)
.
Un exemple:
String[] colors = {"red", "green", "blue", "black"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on colors[which]
}
});
builder.show();
La sortie (sur Android 4.0.3):
(Carte de fond non incluse.;))
Les pop-ups ne sont rien d'autre que AlertDialog
. Il vous suffit donc de créer AlertDialog
, puis gonflez votre vue souhaitée à l'aide de LayoutInflater
et définissez la vue gonflée à l'aide de setView()
méthode de AlertDialog
OPTION ALTERNATIVE
Ceci est mon premier post donc je suis ravi de partager mon code! Cela a fonctionné pour moi:
Placez ces deux lignes au-dessus de l'événement OnCreate
final String[] Options = {"Red", "Blue"};
AlertDialog.Builder window;
Placez ce code sur l'événement qui déclenchera cette
window = new AlertDialog.Builder(this);
window.setTitle("Pick a color");
window.setItems(Options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(which == 0){
//first option clicked, do this...
}else if(which == 1){
//second option clicked, do this...
}else{
//theres an error in what was selected
Toast.makeText(getApplicationContext(), "Hmmm I messed up. I detected that you clicked on : " + which + "?", Toast.LENGTH_LONG).show();
}
}
});
window.show();
Essaye ça :
vide public onClick (Afficher v) {
final String[] fonts = {"Small", "Medium", "Large", "Huge"};
AlertDialog.Builder builder = new AlertDialog.Builder(TopicDetails.this);
builder.setTitle("Select a text size");
builder.setItems(fonts, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if ("Small".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you nailed it", Toast.LENGTH_SHORT).show();
}
else if ("Medium".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you cracked it", Toast.LENGTH_SHORT).show();
}
else if ("Large".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you hacked it", Toast.LENGTH_SHORT).show();
}
else if ("Huge".equals(fonts[which])){
Toast.makeText(TopicDetails.this,"you digged it", Toast.LENGTH_SHORT).show();
}
// the user clicked on colors[which]
}
});
builder.show();
}