如何在onBindViewHolder()中充气和循环视图?

时间:2015-07-26 11:46:44

标签: android

这是我第一次在这里提问。我将清楚地解释什么是问题。

我正在创建一个Android应用,通过Feed中的选项/选项显示问题。我使用RecyclerView和CardView来显示它们。我能够显示问题和其他东西,但我很难显示选项。我试图在onBindViewHolder()内循环选项/选项数组。我可以在日志中看到数据存在,但我不能/我不知道如何动态添加视图。

我已经有了循环,但我不确定如何膨胀或显示文本视图。这是我的onBindViewHolder()代码:

public void onBindViewHolder(PublicQuestionViewHolder publicQuestionViewHolder, int i) {
        publicQuestionViewHolder.questionAuthor.setText(questions.get(i).getQuestionAuthor());
        publicQuestionViewHolder.questionText.setText(questions.get(i).getQuestionText());

        ParseUser currentUser = ParseUser.getCurrentUser();
        if (currentUser == questions.get(i).getQuestionParseUser()) {
            publicQuestionViewHolder.questionEditIconImageView.setVisibility(View.VISIBLE);
        } else {
            publicQuestionViewHolder.questionEditIconImageView.setVisibility(View.INVISIBLE);
        }
        //Log.d("Options", String.valueOf(questions.get(i).getQuestionOptions().size()));

        if (questions.get(i).getQuestionOptions().size() != 0) {

            for (QuestionOption option : questions.get(i).getQuestionOptions()) {
                if (option.getQuestionOptionType().equals("T")) {
                    Log.d("Option", option.getQuestionOptionText());


                } else if (option.getQuestionOptionType().equals("I")) {
                    Log.d("Option", option.getQuestionOptionImage().getName());
                }
            }
        }

    }

1 个答案:

答案 0 :(得分:4)

首先在适配器构造函数中获取活动上下文并保存。

然后只需在onBindViewHolder中夸大该视图,就像这样 -

View newView = LayoutInflater.from(context).inflate(R.layout.view_name, null);

将该视图添加到您喜欢的任何父级,例如。 -

publicQuestionViewHolder.parentName.addView(newView);

然后像这样引用它的孩子 -

TextView name = (TextView) newView.findViewById(R.id.name);