如何动态显示对话框?

时间:2014-04-25 10:55:12

标签: android

我是一个正在制作Android应用程序的noob程序员,这是一个风险评估"清单"。我想使用Dialogues来显示问题,然后让用户按是或否。

问题:是否可以相互动态生成对话框而无需为所有49个问题制作对话框方法?就像对话框只有一种方法,但当用户按下YES按钮时显示不同的问题。

3 个答案:

答案 0 :(得分:3)

create method and call each time by passing question

public void showAlertDialog(String question){

AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);  
alertDialog.setTitle("Title");  
alertDialog.setMessage(question);  
 alertDialog.setButton("OK", null);  
 AlertDialog alert = alertDialog.create();
alert.show();
}

答案 1 :(得分:1)

一种方法是使用Alert Dialog方法,为了显示顺序弹出窗口,连续弹出窗口的条件和代码必须可以从一个弹出窗口到另一个窗口。
AlertDialog1必须包含显示AlertDialog2 ...

的代码

尝试这样的事情:

                AlertDialog.Builder alert = new AlertDialog.Builder(this);

                alert.setTitle("Title");
                alert.setMessage("Your Question");

                // Set an EditText view to get user input 
                final EditText input = new EditText(this);
                alert.setView(input);

                alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {


                    //assess input
                 //call function for next dialog
                        callNextDialog(pass question parameter here);
                  }
                });
        //set negative button and consequent action according to your requirment
                alert.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {
                    // Canceled.
                  }
                });

                alert.show();  

将其放入方法中并根据您的实现调用该方法为您的问题设置参数。

问题参数可以是可以逐步设置的ID ...

答案 2 :(得分:1)

是的,有可能,

你可以创建创建对话框方法,在那个方法中你可以提问。在对话框中,它从字符串数组和while循环中提问。当你的问题结束时,循环中断。像这样:

String [] question_desc=new String [100]// if you have 100 question
question_desc[0]="xx";
question_desc[1]="yy";
.....
//Then in while
int counter=0;
while(question_desc.length)
{
call_create_dialog_method(question_desc[counter]);
counter++;
}

//then

public void call_create_dialog_method(String description)
{
 AlertDialog.Builder alert = new AlertDialog.Builder(this);

                alert.setTitle("Q&A");
                alert.setMessage(description);

                // Set an EditText view to get user input 
                final EditText input = new EditText(this);
                alert.setView(input);

                alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int whichButton) {
                        //you can do what you need
                  }
                });
        //set negative button and consequent action according to your requirment
                alert.setNegativeButton("NO", new DialogInterface.OnClickListener() {
                  public void onClick(DialogInterface dialog, int whichButton) {
                    // Canceled.
                  }
                });

                alert.show();  
}