使用列表为我的 RecyclerView 制作自定义适配器

Made a custom Adapter for my RecyclerView with a List

我想为我的 RecyclerView 定制一个 Adapter,因为我需要在内部使用一个自定义方法,稍后当我的演示者准备好时,谁会初始化我的 List

    public void setList(List<Object> data){
        this.data = data;
    }

这是我未实现的适配器的非自定义接口。

final class AdapterReviews extends RecyclerView.Adapter<AdapterReviews.ReviewViewHolder> {}

问题是我的自定义界面应该如何 Adapter

您可以检查this。这里有 RecyclerView 的完整示例。都是Google.

制作的

基本的 RecyclerView CustomAdapter 如下所示

public class CustomAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private final Context context;
    ArrayList<String> list = new ArrayList<>();

    public CustomAdapter(Context context, ArrayList<String> list) { // you can pass other parameters in constructor
        this.context = context;
        this.list = list;
    }

    private class CustomAdapterItemView extends RecyclerView.ViewHolder {
        final TextView textView;

        CustomAdapterItemView(final View itemView) {
            super(itemView);
            textView = (TextView) itemView;
        }

        void bind(int position) {
            textView.setText("");
        }
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        return new CustomAdapterItemView(LayoutInflater.from(context).inflate(R.layout.item_color, parent, false));
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
        ((CustomAdapterItemView) holder).bind(position);
    }

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

    // Add your other methods here
}
  **public class GetHolidaylistAdapter extends RecyclerView.Adapter<GetHolidaylistAdapter.ViewHolder> {
    ArrayList<HashMap<String, String>> arrayList;
    public GetHolidaylistAdapter(ArrayList<HashMap<String, String>> arrayList) {
        this.arrayList = arrayList;
    }
    public class ViewHolder extends RecyclerView.ViewHolder {
        TextView holiyDay_Date_Tv, holidayName_tv, holidayType_tv, day_tv;
        public ViewHolder(View itemView) {
            super(itemView);
            holiyDay_Date_Tv = (TextView) itemView.findViewById(R.id.holiyDay_Date_Tv);
            holidayName_tv = (TextView) itemView.findViewById(R.id.holidayName_tv);
            holidayType_tv = (TextView) itemView.findViewById(R.id.holidayType_tv);
        }
    }
    @Override
    public int getItemCount() {
        return arrayList.size();
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        GetHolidaylistAdapter.ViewHolder viewHolder = null;
        Log.d(TAG, "Rv_Child_Active.." + viewType);

        viewHolder = new GetHolidaylistAdapter.ViewHolder(LayoutInflater.from(parent.getContext()).
        inflate(R.layout.holiday_child_rv, parent, false));

        return viewHolder;
    }
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        String date = arrayList.get(position).get(TAG_HOLIDAYDATE);
        holder.holidayName_tv.setText(arrayList.get(position).get(TAG_HOLIDAYName));
        holder.holiyDay_Date_Tv.setText(arrayList.get(position).get(TAG_HOLIDAYDATE));
        holder.holidayType_tv.setText(arrayList.get(position).get(TAG_HOLIDAYtype));
    ***}
}
recycle_view=(RecyclerView)findViewById(R.id.recycle_view);
    linearLayoutManager=new LinearLayoutManager(this);
    recycle_view.setLayoutManager(linearLayoutManager);
    adapter=new CustomAdapter(modelRecyclerArrayList);
    recycle_view.setAdapter(adapter);
RecyclerView recycle_view;
LinearLayoutManager linearLayoutManager;
 CustomAdapter adapter;
ArrayList<ModelRecycler> modelRecyclerArrayList = new ArrayList<>();*