java - 如何单独验证 ListView 中多个 RadioGroup 中的选定选项?

标签 java android

我对 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/

相关文章:

android - 按后退按钮关闭 DatePickerDialog

android - 在 Android 中实现 startForeground 方法

java - PgaSocketWriteAllHdipc : hd_ipc_send() failed hd_ipc_send: not connected

android - 猴子测试时获取计数不是命令行上的数字错误

android - 保护Android apk防止反编译、网络嗅探等

java - 如何在本地局域网上找到 'shutdown' 系统的 MAC 地址(可能吗?)

android - Linux 操作系统和移动操作系统 (android) 之间的根本区别

java - 安卓分钟:seconds

java - 检查检查列表中的元素是否已勾选并通过电子邮件发送?

java - 为什么以下应用程序在使用 ForkJoinPool 时会立即终止,而在我使用 ThreadPoolExecutor 时却不会?