首页 > 解决方案 > 安卓视图

问题描述

package com.jakewalther.x;

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import java.util.List;

public class adapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
Context context;
List<users> users;
public adapter(List<users> getDataAdapter, Context context){
    super();
    this.users = getDataAdapter;
    this.context = context;
}

public adapter(List<users> usersList, LoadXOrgasm context) {
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, parent, false);
    ViewHolder viewHolder = new ViewHolder(view);
    return viewHolder;
}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    users getDataAdapter1 =  users.get(position);
    holder.UserName.setText(getDataAdapter1.getName());
}

@Override
public int getItemCount() {
    return users.size();
}

class ViewHolder extends RecyclerView.ViewHolder {
    public TextView UserName;
    public ViewHolder(View itemView) {
        super(itemView);
        UserName = (TextView) itemView.findViewById(R.id.TextViewCard) ;
    }
}

我正在尝试为回收站视图制作适配器。出现编译错误在该行找不到 UserName

holder.UserName.setText(getDataAdapter1.getName()); 

我已经尝试了所有我无法弄清楚为什么代码无法运行的方法。

标签: androidandroid-viewholder

解决方案


您的问题是您正在扩展 ViewHolder RecylerView,而不是您的自定义 ViewHolder.inonBindViewMethod()您必须检查持有人实例是否属于您的自定义Viewholder实例。

 if(holder intanceOf ViewHolder ){ //here ViewHolder is your custom holder class 

            ((ViewHolder ) holder).UserName((getDataAdapter1.getName());

        }

推荐阅读