2012-08-01 5 views
0

J'ai un AlertDialog défini ainsi:article Android AlertDialog déclipsée

final CharSequence[] items = { "Red", "Green", "Blue", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" }; 

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
builder.setTitle("Pick a color"); 

builder.setSingleChoiceItems(items, 0, new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int item) { 

     // Set items uncheckable 

     Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); 

    } 
}); 

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 

    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     // TODO Auto-generated method stub 

    } 
}); 

AlertDialog alert = builder.create(); 
alert.show(); 

PREMIERE QUESTION

Est-il possible de marquer quelques-uns des éléments tels que invérifiables? Bien que je montre divers éléments, je comprends ce que l'utilisateur comprend que les éléments existent, mais certains d'entre eux ne peuvent pas être vérifiés.

DEUXIEME QUESTION

S'il y a un moyen d'accomplir ma première question, est-il possible de mettre des articles que invérifiables estompées?

Merci,

favolas

Répondre

0

Peut-être quelque chose comme:

(AlertDialog)builder.getButton(AlertDialog.BUTTON_POSITIVE).setEnabled(false); 

Voici une autre façon:

Button button = dialog.getButton(AlertDialog.BUTTON_POSITIVE); 
button.setEnabled(false) 

voir si cela fonctionne. assurez-vous également ceci après builder.create(); mais before alert.show()

EDIT: Pour les éléments de la liste, je pense que vous pouvez utiliser getListView() avec que vous pouvez accéder aux options cochables, et l'utilisation setEnabled(false)

+0

Merci, mais je faisais référence à des éléments sur le 'CharSequence []'. Par exemple, définissez les éléments «Rouge», «Un» et «Cinq» pour qu'ils soient désactivés et grisés (ou une autre couleur) – Favolas

+0

Je vois ce que vous dites. Jetez un oeil à mon édition peut-être que cela aide. – 0gravity

+0

Bonjour. Merci, mais ListView liste = ((AlertDialog) dialogue) .getListView(); '' list.setEnabled (false); 'rend la liste ALL désactivé, pas seulement les éléments souhaités à la liste. Cela évite de désactiver le défilement sur la liste ... – Favolas

0

Vous devez choisir un élément spécifique de l'enfant, puis le désactiver:

ListView list = ((AlertDialog) dialog).getListView(); 
list.getChildAt(item).setEnabled(false);