Android RecycleView用法及方法传参用法

1.创建适配器。可以根据自己的需要创建构造方法;

public class MyRecycleAdapter extends RecyclerView.Adapter<MyRecycleAdapter.MyHolder>{
    private Context mcontext;
    private OnItemClickListener monItemClickListener;
    private OnItemLongListener monItemLongListener;
    private List list;
    private int index = -1;


    public MyRecycleAdapter(List list, Context context, OnItemClickListener onItemClickListener, OnItemLongListener onItemLongListener) {
        this.list = list;
        this.mcontext = context;
        this.monItemClickListener = onItemClickListener;
        this.monItemLongListener = onItemLongListener;

    }

    public MyRecycleAdapter(List list, Context context, OnItemLongListener onItemLongListener) {
        this.list = list;
        this.mcontext = context;
        this.monItemLongListener = onItemLongListener;

    }

    public MyRecycleAdapter(List list, Context context) {
        this.list = list;
        this.mcontext = context;


    }




    public MyRecycleAdapter( Context context,OnItemClickListener onItemClickListener) {

        this.mcontext = context;
        this.monItemClickListener = onItemClickListener;
    }

    @NonNull
    @Override
    public MyRecycleAdapter.MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new MyHolder(LayoutInflater.from(mcontext).inflate(R.layout.recycle_item,parent,false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyRecycleAdapter.MyHolder holder, @SuppressLint("RecyclerView") int position) {
        boolean checked = position == index;
        holder.tv_item.setText(String.valueOf(list.get(position)));
        if(checked){
            holder.imageView.setImageResource(R.drawable.bg_item1);
        }else{
            holder.imageView.setImageResource(R.drawable.bg_item);
        }

        holder.itemView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                monItemClickListener.onClick(position);
            }
        });

        holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {

                monItemLongListener.onClick(position);
                return false;
            }
        });
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    class MyHolder extends RecyclerView.ViewHolder{
        private TextView tv_item;
        private ImageView imageView;
        public MyHolder(@NonNull View itemView) {
            super(itemView);
         tv_item =  itemView.findViewById(R.id.tv_item);
         imageView = itemView.findViewById(R.id.imageView);
        }
    }
    public interface OnItemClickListener{
        void onClick(int pos);
    }

    public interface OnItemLongListener{
        void onClick(int pos);
    }

    public void setSelection(int pos) {
        //将前面点击事件传递进来的点击的位置赋值给index
        index = pos;
        //一定要刷新数据
        notifyDataSetChanged();
    }

}

2.设置适配器

public class MessageBackActivity extends AppCompatActivity implements View.OnClickListener {
List list;
List list1;
MyRecycleAdapter adapter;
MyRecycleAdapter adapter1;
RecyclerView recyclerView;
ImageView imageView10,img_back;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);//隐藏状态栏
        getSupportActionBar().hide();//隐藏标题栏
        setContentView(R.layout.activity_message_back);
        recyclerView = findViewById(R.id.recyclerView);
        list = new ArrayList();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        list.add("5");
        list.add("6");

        GridLayoutManager layoutManager = new GridLayoutManager(this, 3);
        recyclerView.setLayoutManager(layoutManager);
        adapter = new MyRecycleAdapter(list, this, new MyRecycleAdapter.OnItemClickListener() {
            @Override
            public void onClick(int pos) {
                adapter.setSelection(pos);//调用方法传参
            }
        }, new MyRecycleAdapter.OnItemLongListener() {
            @Override
            public void onClick(int pos) {

            }
        });
          recyclerView.setAdapter(adapter);
    }


    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值