Страницы

Поиск по вопросам

четверг, 18 октября 2018 г.

Как установить связь между элементами двух массивов, чтобы после перемешивания элементов первого массива связь не терялась

Есть массив вопросов:
String[] questions = getResources().getStringArray(R.array.questions);
Есть массив ответов на эти вопросы:
String[]answers= getResources().getStringArray(R.array.answers);
Изначально первый вопрос в массиве вопросов соответствует первому ответу в массиве ответов. В процессе игры пользователь должен ответить на вопрос и его ответ должен сравниваться с ответом из массива ответов, в результате чего либо прибавляется балл, либо нет. Ответы из массива нигде не выводятся. Отвечать на вопросы можно многократно с целью улучшения результата.
Но, чтобы исключить момент механического запоминания ответов по очередности их появления (если вопросы будут все время показывать в одном и том же порядке), вопросы перед стартом перемешиваются с помощью специального метода.
Проблема в том, как теперь указать программе, какой из ответов соответствует какому из вопросов в перемешанном массиве вопросов? Можно ли в андроид изначально связать элементы из одного массива с соответствующим им элементам из другого массива, чтобы после перемешивания первого массива, программа сохраняла связь между элементом из первого массива и элементом из второго массива?
Быть может, эту задачу может решить каким-то другим способом?


Ответ

Вам надо создать модель данных, содержащую и вопрос и ответ. После этого список этих моделей можно мешать как угодно без потери связности.
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); ArrayList models=new ArrayList<>(); for(int i = 0; i< questions.lenght; i++) { models.add(new QAModel(questions[i], answers[i])); }
Теперь вы можете сортировать вопросы, не теряя связь с ответами.

Комментариев нет:

Отправить комментарий