java - 我的适配器可能有什么问题,我似乎没有找到它``

标签 java android

View 似乎没有绑定(bind)到我传递给类的ArrayList(即private ArrayList mEvents;),在onBindViewHolder(即holder.mTextView2.setText(current.getcity());)上我似乎可以访问我在 View 持有者类中声明的textView变量(即public TextView mTextview2;)。我尝试过将变量作为成员变量,但似乎效果不佳

public class eventsAdapter extends RecyclerView.Adapter {
    private  ArrayList<recycleview_items> mEvents;

    public eventsAdapter(ArrayList<recycleview_items> passedArray){
        //constructor for the adapter calls for which i created
        mEvents = passedArray;

    }

    @NonNull
    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        //we pass the layout of our card to the adapter here
        View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_listitem, parent, false);
        eventViewHolder events = new eventViewHolder(v);
        return  events;
    }


    @Override
    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
        //we pass data from the array list we created  to the views
        recycleview_items current = mEvents.get(position);

        holder.mImageView.setImageResource(current.getImageResource());
        holder.mTextView1.setText(current.getname());
        holder.mTextView2.setText(current.getcity());


    }

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

    public static class eventViewHolder extends  RecyclerView.ViewHolder{
        public ImageView mImageview ;
        public TextView mTextview;
        public TextView mTextview2;

        public eventViewHolder(@NonNull View itemView) {
            super(itemView);
            mImageview = itemView.findViewById(R.id.ImageView1);
            mTextview =  itemView.findViewById(R.id.text_view1);
            mTextview2 =  itemView.findViewById(R.id.text_view2);
        }
    }
}

最佳答案

public class eventsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private  ArrayList<recycleview_items> mEvents;

public eventsAdapter(ArrayList<recycleview_items> passedArray){
    //constructor for the adapter calls for which i created
    mEvents = passedArray;

}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    //we pass the layout of our card to the adapter here
    View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycle_listitem, parent, false);
    eventViewHolder events = new eventViewHolder(v);
    return  events;
}


@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
    //we pass data from the array list we created  to the views
    recycleview_items current = mEvents.get(position);
    holder.bind(current);
}

@Override
public int getItemCount() {
    return mEvents.size();
};
class eventViewHolder extends  RecyclerView.ViewHolder{
    public ImageView mImageview ;
    public TextView mTextview;
    public TextView mTextview2;

    public eventViewHolder(@NonNull View itemView) {
        super(itemView);
        mImageview = itemView.findViewById(R.id.ImageView1);
        mTextview =  itemView.findViewById(R.id.text_view1);
        mTextview2 =  itemView.findViewById(R.id.text_view2);

      public void bind(recycleview_items item){
        //bind your items here
        holder.mImageView.setImageResource(item.getImageResource());
        holder.mTextView1.setText(item.getname());
        holder.mTextView2.setText(item.getcity());
    }
}

}

我已经为您重写了您的代码,并稍加修改。

关于java - 我的适配器可能有什么问题,我似乎没有找到它``,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59948568/

相关文章:

Java:从目录中获取新文件列表

java - 强制 java 释放 Java 中的所有文件锁/句柄

java - Android:使用单击按钮在单个相对布局中创建两个线性布局

android - Firestore 任务 whenallcomplete() - 任务尚未完成

Android - 在短时间内(最多 10 秒)获取网络 GPS 位置

java - 设置带有推送的 key ,这样数据就不会被覆盖

java - 无法导入 java.time 包

java - fragment 中的可点击 ListView

java - 如何为 MPAndroidChart 添加数据

android - 图标在所有设备上看起来都不一样