我对 Android 开发和编程非常陌生。我的目标是在 format 中创建一个测验.
每一行都是一个自定义 View ,其中包含一个带有 3 个 RadioButtons 的 RadioGroup。正如您在图片中看到的那样,效果很好。
这就是填充列表的方式:
private void populateListView() {
ArrayAdapter<QuizQuestion> adapter = new MyListAdapter();
ListView list = (ListView) findViewById(R.id.questionsListView);
list.setAdapter(adapter);
}
private class MyListAdapter extends ArrayAdapter<QuizQuestion> {
public MyListAdapter() {
super(ShortQuiz.this, R.layout.item_view, myQuestions);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View itemView = convertView;
if (itemView == null) {
itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
}
QuizQuestion currentQuestion = myQuestions.get(position);
ImageView imageView = (ImageView) itemView.findViewById(R.id.item_icon);
imageView.setImageResource(currentQuestion.getImageId());
//Question
TextView question = (TextView) itemView.findViewById(R.id.item_question);
question.setText(currentQuestion.getQuestion());
//Game
TextView game = (TextView) itemView.findViewById(R.id.item_game);
game.setText(currentQuestion.getGameName());
//Option A
TextView optionA = (TextView) itemView.findViewById(R.id.item_radioA);
optionA.setText(currentQuestion.getOptionA());
//Option B
TextView optionB = (TextView) itemView.findViewById(R.id.item_radioB);
optionB.setText(currentQuestion.getOptionB());
//Option C
TextView optionC = (TextView) itemView.findViewById(R.id.item_radioC);
optionC.setText(currentQuestion.getOptionC());
return itemView;
}
}
问题是我不知道如何在创建后“访问”(设置/获取 id)每个 RadioGroup 以验证正确或错误的答案,我想按一个按钮一次性完成此操作,如:如果所选选项正确,则 +1 表示正确答案。
谢谢。
最佳答案
为每一行使用 ViewHolder。 https://developer.android.com/reference/android/support/v7/widget/RecyclerView.ViewHolder.html
您可以引用每个单独行中的项目。您可以搜索有关如何在实践中使用 ViewHolder 的示例,但一般来说,持有者中的每一行都将使用 setTag() 存储并使用 getTag() 检索。因此您可以在 View 中获取项目,例如:
view.getTag();
关于java - 如何单独验证 ListView 中多个 RadioGroup 中的选定选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163509/