Recycler点击事件_接口回调

来源:互联网 发布:课工场js培训 编辑:程序博客网 时间:2024/06/03 14:54
//适配器package com.example.recyclerview_dianjishijian;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.TextView;import java.util.List;/** * Created by Administrator on 2017/11/27. */public class Myadaper extends RecyclerView.Adapter<RecyclerView.ViewHolder>{    Context  context;    List<String> list;    private Myviewhodler myviewhodler;    //接口回调点击事件    SetonClick setonClick;    //接口回调方法    public interface SetonClick{        void setOnclick(int position);    }    //set方法    public void setSetonClick(SetonClick setonClick) {        this.setonClick = setonClick;    }    public Myadaper(Context context, List<String> list) {        this.context = context;        this.list = list;    }    @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        View view = View.inflate(context,R.layout.item,null);        myviewhodler = new Myviewhodler(view);        return myviewhodler;    }    @Override    public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {                myviewhodler.tv.setText("你猜");        //点击事件        holder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {            if (setonClick != null){                setonClick.setOnclick(position);            }            }        });    }    @Override    public int getItemCount() {        return list.size();    }        class  Myviewhodler extends RecyclerView.ViewHolder{            private final TextView tv;            public Myviewhodler(View itemView) {                super(itemView);                tv = itemView.findViewById(R.id.tvv);            }        }}
MainActivity
package com.example.recyclerview_dianjishijian;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {List<String> list = new ArrayList<>();    private RecyclerView rv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rv = (RecyclerView) findViewById(R.id.tv);        for (int i = 0; i <20 ; i++) {            list.add("不知道"+i);        }        Myadaper myadaper = new Myadaper(this,list);        LinearLayoutManager manager = new LinearLayoutManager(this);        rv.setLayoutManager(manager);        rv.setAdapter(myadaper);        //接口回调点击适配器控件        myadaper.setSetonClick(new Myadaper.SetonClick() {            @Override            public void setOnclick(int position) {                Toast.makeText(MainActivity.this, ""+position, Toast.LENGTH_SHORT).show();            }        });    }}



原创粉丝点击