从自身更改 CardView 内的 TextView 中的文本

Changing text in TextView inside CardView from itself

想象一下带有按钮和文本字段的 CardView。当我按下按钮时,文本字段中的文本应该会发生变化。下面给出了我的 recyclerView 的代码,我在其中设置按钮的文本和侦听器:

@Override
    public void onBindViewHolder(CategoriesDetailedViewHolder holder, int position) {

        final CategoryDetailedModel model = categoriesDetailedModels.get(position);
        holder.description.setText(model.getQuestion());

        holder.btnPlus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                holder.description.setText("some text");
            }
        });
    }

主要问题在于字符串:

holder.description.setText("some text");

无法从内部 class 访问它。 有谁知道如何更改卡片视图中的文本吗?

更新 1

public class CategoriesDetailedViewHolder extends RecyclerView.ViewHolder{
        CardView cv;
        TextView description;
        TextView positiveCounter;
        TextView negativeCounter;
        TextView btnPlus;
        View negativeCounterWrapper;
        View positiveCounterWrapper;
        CategoriesDetailedViewHolder(View itemView) {
            super(itemView);
            cv = (CardView)itemView.findViewById(R.id.cv);
            description = (TextView)itemView.findViewById(R.id.main_text);
            positiveCounter = (TextView)itemView.findViewById(R.id.tv_positive_count_in_circle);
            negativeCounter = (TextView)itemView.findViewById(R.id.tv_negative_count_in_circle);
            btnPlus = (TextView)itemView.findViewById(R.id.plus_button);

            positiveCounterWrapper = itemView.findViewById(R.id.positive_count_wrapper);
            negativeCounterWrapper = itemView.findViewById(R.id.negative_count_wrapper);
            cv.setPreventCornerOverlap(false);
        }
    }

    @Override
    public CategoriesDetailedViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.categories_detailed_list_row_view, parent, false);
        CategoriesDetailedViewHolder pvh = new CategoriesDetailedViewHolder(v);
        context = parent.getContext();
        return pvh;
    }

而不是,

TextView description;

成功,

public TextView description;

编辑: 更改以下内容,

@Override
    public void onBindViewHolder(CategoriesDetailedViewHolder holder, int position) { ... }

到,

@Override 
    public void onBindViewHolder( final CategoriesDetailedViewHolder holder, int position) { .... }

我使用这段代码,它工作正常,你只需要使用 onBind 方法。 这是一个示例,我在我的项目中使用了它,您可以根据自己的需要对其进行更改:

public void onBindViewHolder(final TipsViewHolder TipsViewHolder, final int i) {

        TipsViewHolder.cardText.setText("Old text");

        TipsViewHolder.txtBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                TipsViewHolder.cardText.setText("New Text");

            }
        });
}