#java #android #массивы
Есть массив вопросов:
String[] questions = getResources().getStringArray(R.array.questions);
Есть массив ответов на эти вопросы:
String[]answers= getResources().getStringArray(R.array.answers);
Изначально первый вопрос в массиве вопросов соответствует первому ответу в массиве
ответов. В процессе игры пользователь должен ответить на вопрос и его ответ должен
сравниваться с ответом из массива ответов, в результате чего либо прибавляется балл,
либо нет. Ответы из массива нигде не выводятся. Отвечать на вопросы можно многократно
с целью улучшения результата.
Но, чтобы исключить момент механического запоминания ответов по очередности их появления
(если вопросы будут все время показывать в одном и том же порядке), вопросы перед стартом
перемешиваются с помощью специального метода.
Проблема в том, как теперь указать программе, какой из ответов соответствует какому
из вопросов в перемешанном массиве вопросов? Можно ли в андроид изначально связать
элементы из одного массива с соответствующим им элементам из другого массива, чтобы
после перемешивания первого массива, программа сохраняла связь между элементом из первого
массива и элементом из второго массива?
Быть может, эту задачу может решить каким-то другим способом?
Ответы
Ответ 1
Вам надо создать модель данных, содержащую и вопрос и ответ. После этого список этих моделей можно мешать как угодно без потери связности. public class QAModel { String q; String a; QAModel(String q, String a) { this.q=q; this.a=a; } public String getQ(){return q;} public String getA(){return a;} } Теперь вы можете создавать вашу модель из ваших данных: String[] questions = getResources().getStringArray(R.array.questions); String[] answers = getResources().getStringArray(R.array.answers); ArrayListmodels=new ArrayList<>(); for(int i = 0; i< questions.lenght; i++) { models.add(new QAModel(questions[i], answers[i])); } Теперь вы можете сортировать вопросы, не теряя связь с ответами. Ответ 2
Ну на самом деле напрашиваются сразу 2 варианта решения: 1 - создать класс Quiz с полями question и answer. Создать список, который будет содержать экземпляры данного класса с вопросом и ответом. Дальше можете перемешивать как хотите данный список. 2 - Создать TreeMap и заполнить ее данными, в качестве ключа вопрос, в качестве значения - ответ. ПЕРВЫЙ ВАРИАНТ ПРЕДПОЧТИТЕЛЬНЕЕ :)
Комментариев нет:
Отправить комментарий