猿问

为所有 Recycler View 适配器创建基础适配器

public abstract class BaseAdapters extends RecyclerView.Adapter<BaseAdapters.MyViewHolder> implements View.OnClickListener {


    protected Context parentContext;

    public int layout_id;

    protected List<?> dataList = new ArrayList<>();



    public class MyViewHolder extends RecyclerView.ViewHolder  {


         MyViewHolder(View view) {

            super(view);

            declareViews(view,this);

        }

    }


    @Override

    public void onClick(View view) {

        onClickViews(view);

    }


    @Override

    public int getItemViewType(int position) {

        return position;

    }


    @Override

    public long getItemId(int position) {

        return position;

    }


    @Override

    public void onBindViewHolder(@NonNull MyViewHolder holder, int i) {

        bindView(holder, i);

    }


    public void notifyList(List<?> filterdNames) {

        this.dataList = filterdNames;

        notifyDataSetChanged();

    }


    @Override

    public int getItemCount() {

        if (dataList.size() == 0)

            return 5;

        else

            return dataList.size();

    }


    @NonNull

    @Override

    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {

        View itemView = LayoutInflater.from(parent.getContext()).inflate(layout_id, parent, false);

        return new MyViewHolder(itemView);

    }


    public abstract MyViewHolder bindView(MyViewHolder holder, int position);


    public abstract void onClickViews(View view);


    public abstract void declareViews(View view,MyViewHolder holder);


}

我如何在使用它扩展的子类中的持有人点击每个项目选择时执行。


凤凰求蛊
浏览 146回答 3
3回答
随时随地看视频慕课网APP

相关分类

Java
我要回答