我是一个正在制作Android应用程序的noob程序员,这是一个风险评估"清单"。我想使用Dialogues来显示问题,然后让用户按是或否。
问题:是否可以相互动态生成对话框而无需为所有49个问题制作对话框方法?就像对话框只有一种方法,但当用户按下YES按钮时显示不同的问题。
答案 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();
}