Есть массив вопросов:
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
Теперь вы можете сортировать вопросы, не теряя связь с ответами.
Комментариев нет:
Отправить комментарий