0

いくつかの警告ダイアログを表示したいので、ユーザーはいくつかの質問を処理する必要があります (ウィザードのように)。

ユーザーが何かを選択し、選択した値を返すまでalertDialogを待機させることは可能ですか?

    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();
    }

編集。クリスへの返信:

プログラムの実行は、ユーザーが alertDialog のオプションの 1 つを選択するまで待機する必要があります。

これは可能ですか?

このような:

    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)
4

2 に答える 2

0

一連のAlertDialogボックスを表示したい場合は、ダイアログ自体の中にいくつかのリスナーを設定するのが最善の策です。

.setPositiveButton("My Button Name", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           //do stuff like set some variables, maybe display another dialog
                       }
               }) 

アラート ダイアログにデフォルトのポジティブ ボタンを使用していることに注意してください。ユーザーが何をクリックしているかに応じて、これを変更する必要がある場合があります。

Activityからクラスにコールバックを行うAlertDialog onClickListener場合は、 を使用MyActivityClassName.this.myMethodOrVariableHereして行うことができます。

お役に立てば幸いです。さらに説明が必要な場合は、コメントを残してください。

于 2010-08-24T08:07:41.780 に答える
0

私のコードは汚いので、この方法で修正しました(疑似コード):p

    activity{
        onCreate{
            makeNextQuestion(1)
        }

        public void nextQuestion(int questionId){
            //add string and answering buttons to layout
            btn.onClickList(){
                onClick(View btn){
                    activity.this.nextQuestion(btn.getId());
                }
            }
        }
    }
于 2010-08-24T14:53:00.590 に答える