Je voudrais montrer un certain nombre de dialogues d'alerte, de sorte que l'utilisateur doit gérer quelques questions (un peu comme un assistant).AlertDialog obtient une valeur de retour sans un gestionnaire
Est-il possible de faire en sorte que alertDialog attende que l'utilisateur choisisse quelque chose et retourne la valeur choisen?
HashMap<Integer, Question> questions = DataConnector.getCallQuestions(position);
int nextQuestion = position;
while(nextQuestion != 0){
Question question = questions.get(nextQuestion);
CharSequence[] items = (String[])question.getAnswers();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(question.getQuestion());
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
}
});
AlertDialog alert = builder.create();
//I would like to do something like this:
nextQuestion = alert.getClickedItem();
}
EDIT. Réponse à chris:
L'exécution du programme devrait attendre jusqu'à ce que l'utilisateur choisit une des options dans le AlertDialog
Est-ce possible?
Comme ceci:
private int answer = 0;
....
...methode(){
//show dialog
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(question.getQuestion());
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
CallHandleMenu.this.answer = item; //setting answer
}
});
builder.create().show();
//Here I need to know the answer (the answer should not be 0 here)
modifié ma question d'origine pour plus de détails – Berty
@Berty ne vous attendez pas la réponse en dehors du 'onClickListener' du 'AlertDialog'. Au lieu de cela, enregistrez-le et lancez la boîte de dialogue suivante en utilisant 'showDialog (int id)' ou 'showDialog (int id, paquetage args)' Ce sont les deux méthodes de la classe 'Activity' donc' CallHandleMenu.this.showDialog (args) 'est Qu'est-ce que tu cherches – smith324