【Android学习】RecycleView整理

/**
 * RecycleView的适配器
 * */
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{

    private static final String TAG = "RecyclerViewAdapter";

    private Context context;
    private ArrayList<String> datas;


    /**
     * 构造方法
     * 传入上下文以及数据
     * */
    public RecyclerViewAdapter(Context context, ArrayList<String> datas){
        this.context=context;
        this.datas=datas;
    }


    /**
     * 指定布局
     * */
    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View itemView=View.inflate(context, R.layout.recycler_item,null);
        return new ViewHolder(itemView);
    }


    /**
     * 控件的注册
     * */
    class ViewHolder extends RecyclerView.ViewHolder{

        private TextView item_text;
        private ImageView item_icon;

        public ViewHolder(View itemView){
            super(itemView);
            item_icon=itemView.findViewById(R.id.item_icon);
            item_text=itemView.findViewById(R.id.item_text);

        }
    }




    /**
     * 绑定数据
     * */
    @Override
    public void onBindViewHolder(final ViewHolder holder, int position) {

        //根据位置得到数据
        holder.item_text.setText(datas.get(position));


        //点击设置
        if(onItemClickListener!=null){

            //调用系统的点击方法
            holder.item_text.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    onItemClickListener.onItemClick(holder.item_text,holder.getLayoutPosition());
                }
            });

            holder.item_text.setOnLongClickListener(new View.OnLongClickListener() {
                @Override
                public boolean onLongClick(View view) {
                    onItemClickListener.onItemLongClick(holder.item_text,holder.getLayoutPosition());
                    return false;
                }
            });
        }
    }


    /**
     * 返回列表数目
     * */
    @Override
    public int getItemCount() {
        return datas.size();
    }





    /**
     * 设置点击事件
     * */
    private OnItemClickListener onItemClickListener;

    //接口返回两个数据
    public interface OnItemClickListener{
        void onItemClick(View view,int position);
        void onItemLongClick(View view,int position);
    }

    //外界设置
    public void setOnItemClickListener(OnItemClickListener onItemClickListener){
        this.onItemClickListener=onItemClickListener;
    }
 
 
/**
 * 添加数据
 * */
public void addData(int position,String data){

    //添加到第几个位置
    datas.add(position,data);
    //刷新第几个的数据
    notifyItemInserted(position);
}


/**
 * 移除数据
 * */
public void removeData(int position){
    datas.remove(position);
    notifyItemRemoved(position);
}

}
  recyclerView=(RecyclerView)findViewById(R.id.recyclerView);

    /**
     * 设置布局管理器
     * 参数:
     * context,
     * 水平或者竖直
     * 是否倒序
     * */
    recyclerView.setLayoutManager(
            new LinearLayoutManager(this,
                    LinearLayoutManager.VERTICAL,false));

    /**
     * 设置布局管理器
     * 参数:
     * context,
     * 列数
     * 水平或者竖直
     * 是否倒序
     * */
    recyclerView.setLayoutManager(
            new GridLayoutManager(this,2,
                    GridLayoutManager.VERTICAL,false));




    //适配器调用点击方法
    adapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() {
        @Override
        public void onItemClick(View view, int position) {

        }

        @Override
        public void onItemLongClick(View view, int position) {

        }
    });





    adapter=new RecyclerViewAdapter(this,datas);
    recyclerView.setAdapter(adapter);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值