Как уже упоминалось, лучшим вариантом является прослушивание жеста смахивания и замена данных в представлении.Т.е. вам не нужно создавать несколько представлений как таковых для каждого вопроса.Вот что я бы сделал: создайте представление, где XML будет более или менее похожим (обратите внимание, я пропустил, включая атрибуты mandetory, такие как layoutheight и layoutwidth, вам нужно использовать их в xml)
<LinearLayout
android:orientation="vertical">
<TextView
android:id="+@id/questiontext"/>
<RadioGroup
android:id="+@/answersgroup"/>
</LinearLayout>
Сейчас в деятельности:
- Реализовать сенсорный приемник и написать код для обнаружения удара.(приведенный выше ответ от ali.chousein содержит отличную ссылку, чтобы получить хорошую справку о том, как).
При начальной загрузке задайте первый вопрос к виду:
QandA_CustomDataObject dataItem = questionArr.get(0);
((TextView)findViewById(R.id.questiontext)).setText(dataItem.question);
int answearrsize = dataItem.answers.size();
RadioGroup rg = ((RadioGroup)findViewById(R.id.answersgroup));
for(int i=0;i<answearrsize;i++) //Dynamically create the radio buttons
{
AnswerObj ao = dataItem.get(0).answers.get(i);
RadioButton rb = new RadioButton(this);
rb.setText(ao.text);
rb.setTag(ao.isCorrectAnswer); //A string saying TRUE or FALSE
rg.addView(rb);
}
Теперь о части кода после выполнения проверки жеста для пролистывания вправоили проведите влево
//Lets say you ++ or -- a variable named currentQuestionNumber based on the swipe direction)
QandA_CustomDataObject dataItem = questionArr.get(currentQuestionNumber);
((TextView)findViewById(R.id.questiontext)).setText(dataItem.question);
int answearrsize = dataItem.answers.size();
RadioGroup rg = ((RadioGroup)findViewById(R.id.answersgroup));
rg.removeAllViews(); //Clears away the last questions answer options
for(int i=0;i<answearrsize;i++) //Dynamically create the radio buttons
{
AnswerObj ao = dataItem.get(0).answers.get(i);
RadioButton rb = new RadioButton(this);
rb.setText(ao.text);
rb.setTag(ao.isCorrectAnswer); //A string saying TRUE or FALSE
rg.addView(rb);
}
Теперь есть несколько альтернативных способов сделать это.Использование адаптеров, представлений списков и т. Д. Я произвольно назвал все классы структуры данных, но я надеюсь, что вы поняли ... это больше способ справиться с переходом от одного вопроса к другому, используя ту же активность (экран), которую я хотелуказать вам.