Добавьте правильные ответы в диалог оповещения - PullRequest
0 голосов
/ 26 апреля 2018

Пожалуйста, помогите. Я хочу отобразить правильные ответы в диалоговом окне с предупреждением, если я наберу "rightAnswers" внутри "builder.setMessage (" Answer: "+ 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();

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

А это моя база данных знаков

public class Signsdatabase {

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

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Сделайте это изменение в диалоге изменения.

сделать объект базы данных Signs или сделать статическим в массиве ответов.

  builder.setMessage("Answer : " + Signsdatabase.answers[rightAnswers]);
0 голосов
/ 26 апреля 2018

Предположим, у вас есть правильный индекс ответа. Вы можете сделать одно из следующих действий:

Один

Создать объект из базы данных Signs:

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]);
0 голосов
/ 26 апреля 2018

Вы отображаете указатель правильного ответа, вам нужно получить элемент из списка в соответствующей позиции:

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

builder.setMessage ("Answer:" + list [rightAnswers]); // это также проверка.

И вам также нужно инициализировать базу знаков до

signsdatabase = new Signsdatabase();
...