#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 и заполнить ее данными, в качестве ключа вопрос, в качестве значения - ответ. ПЕРВЫЙ ВАРИАНТ ПРЕДПОЧТИТЕЛЬНЕЕ :)
Комментариев нет:
Отправить комментарий