安卓视图


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) ;
}
}

我正在尝试为回收器视图制作适配器。收到编译错误无法在行中找到用户名

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

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

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

if(holder intanceOf ViewHolder ){ //here ViewHolder is your custom holder class 
((ViewHolder ) holder).UserName((getDataAdapter1.getName());
}

将你的 onBindViewHolder 替换为这个,

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

最新更新