添加警报对话框的正确答案

时间:2018-04-26 14:13:19

标签: java android alertdialog

请帮忙。如果我在“builder.setMessage”中输入“rightAnswers”(“答案:”+ rightAnswers),我想在警告对话框中显示正确的答案;“警报节目“答案:1”。 1号而不是正确的答案。请教我什么能够显示正确的答案。非常感谢你。

public class thisactivity extends AppCompatActivity {
Button choice1,choice2;
ImageView images;
List<Model> list;
int turn = 1;
int rightAnswers = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_thisactivity);


    images = (ImageView) findViewById(R.id.images);
    choice1 = (Button) findViewById(R.id.choice1);
    choice2 = (Button) findViewById(R.id.choice2);
    list = new ArrayList<>();
    for (int i = 0; i < new Signsdatabase().answers.length; i++) {
        list.add(new Model(new Signsdatabase().answers[i], new 
         Signsdatabase().signs[i]));
    }

    newQuestion(turn);

    choice1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String alertTitle;              
   if(choice1.getText().toString().equalsIgnoreCase(list.get(turn - 
    1).getName())) {
                rightAnswers = rightAnswers + 1;
                alertTitle = "Correct!";
                if (turn < list.size()) {
                    turn++;
                    newQuestion(turn);
                } else {
                    Toast.makeText(thisactivity.this, "You have completed the Quiz!", Toast.LENGTH_SHORT).show();

                }
            }
            AlertDialog.Builder builder = new 
           AlertDialog.Builder(thisactivity.this)
            builder.setTitle(alertTitle);
            builder.setMessage("Answer : " + **CORRECT ANSWERS**); <---I WANT TO DISPLAY THE CORRECT ANSWER HERE BUT I DO NOT KNOW HOW------->
            builder.setIcon(R.drawable.pic);
            builder.setPositiveButton("OK", new 
            DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int i) {
                }
            });
        }
    });
    choice2.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (choice2.getText().toString().equalsIgnoreCase(list.get(turn - 1).getName())) {
                rightAnswers = rightAnswers + 1;
                    if (turn < list.size()) {
                    turn++;
                    newQuestion(turn);
                } else {
                    Toast.makeText(thisactivity.this, "You have completed the Quiz!", Toast.LENGTH_SHORT).show();
                    getResults();
                }
            } else {


            }
            AlertDialog.Builder builder = new 
           AlertDialog.Builder(Roadsigns.this)
            builder.setTitle(alertTitle);
            builder.setMessage("Answer : " + **CORRECT ANSWERS**); <---I WANT TO DISPLAY THE CORRECT ANSWER HERE BUT I DO NOT KNOW HOW------->
            builder.setIcon(R.drawable.pic);
            builder.setPositiveButton("OK", new 
            DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int i) {
                }
            });
            builder.setCancelable(false);
            builder.show();

        }
    });
}
  ............

这是我的Signsdatabase

public class Signsdatabase {

Integer[] signs ={
        R.drawable.q1,
        R.drawable.q2,
        R.drawable.q3,
        };
 String[] answers = {
        "Ans1",
        "Ans2",
        "Ans3",
   };
}

3 个答案:

答案 0 :(得分:0)

您显示正确答案的索引,您需要从相应位置的列表中获取该项目:

builder.setMessage("Answer : " + signsdatabase.answers[rightAnswers]);

builder.setMessage(“答案:”+ list [rightAnswers]); //它也会检查。

您还需要在

之前初始化signsdatabase
signsdatabase = new Signsdatabase();

答案 1 :(得分:0)

在alter dialog中进行此更改。

制作Signsdatabase对象或在answer数组中创建静态。

  builder.setMessage("Answer : " + Signsdatabase.answers[rightAnswers]);

答案 2 :(得分:0)

假设您有正确的答案索引您可以执行以下操作之一:

<强>一

创建SignsDatabase的对象:

signsDb = new Signsdatabase();

索引 i 正确答案:

builder.setMessage("Answer : "+ signDb.answers[i];

<强>两个

如果您不想创建SignDatabase的实例,可以将答案声明为静态变量,这样:

public class SignDatabase{
... //some code here

public static String[] answers = ["Abc","xyz"];

}

然后通过调用

直接访问它
builder.setMessage(SignDatabase.answers[i]);
相关问题