一点一点的积累

学习就是一个慢慢学的一个过程,每一个过程都是不同的经历,在这个道路上我要坚持下去,从里面找到感觉就能达到你想要的结果。

好了多的不说 把今天学习的东西记录下来 这就是在以后的道路上就能慢慢饿学习积累不同的知识了

recyclerview中的item的子控件的点击事事件,在通过上网查询有很多方法,今天我自己使用定义接口的方法来添加点击事件

public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
    private List<String> data;
    LayoutInflater mlayoutInflater;
    Context context;
    private  ItemOnClick mitemOnClick;
    public MyAdapter(List<String> data, Context context) {
        this.data = data;
        this.context = context;
        this.mlayoutInflater = LayoutInflater.from(context);
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mlayoutInflater.inflate(R.layout.item_activity, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {

    }

    @Override
    public int getItemCount() {
        return 26;
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        private Button button1,button2;
        public ViewHolder(View itemView) {
            super(itemView);
            button1=itemView.findViewById(R.id.button_1);
            button2=itemView.findViewById(R.id.button_2);
            button1.setOnClickListener(this);
            button2.setOnClickListener(this);

        }

        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.button_1:
                    if(mitemOnClick!=null){
                        mitemOnClick.ItemOnClick(v,getPosition(),1);
                    }
                    break;
                case R.id.button_2:
                    if(mitemOnClick!=null){
                        mitemOnClick.ItemOnClick(v,getPosition(),2);
                    }
                    break;
            }
        }
    }
    //item 的点击回调
第一步
    public interface ItemOnClick{
        void  ItemOnClick(View  view,int postion,int flag);
    }
创建方法
 public  void setItemOnClick(ItemOnClick mitemOnClick){
        this.mitemOnClick=mitemOnClick;
 }
}

在activity中回调


  adapter.setItemOnClick(new MyAdapter.ItemOnClick() {
            @Override
            public void ItemOnClick(View view, int postion, int flag) {
                switch (flag){
                    case 1:
                        Toast.makeText(SecondActivity.this,"第一个",Toast.LENGTH_SHORT).show();
                        break;
                    case 2:
                        Toast.makeText(SecondActivity.this,"第二",Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        });

这样就可以点击item中子控件的 点击事件

猜你喜欢

转载自blog.csdn.net/xukangone/article/details/80072286