Recyclerview点击事件

来源:互联网 发布:四通一达哪个最快知乎 编辑:程序博客网 时间:2024/06/03 16:47
package com.example.day2rvcallback;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.ListViewCompat;import android.support.v7.widget.RecyclerView;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ListView;import android.widget.TextView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity {    RecyclerView rv;    List<String> list;    ListView lv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        rv = (RecyclerView) findViewById(R.id.rv);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position, long id) {}});        initRV();    }    public void initRV(){        initData();        LinearLayoutManager manager = new LinearLayoutManager(this);        rv.setLayoutManager(manager);        MyAdapter adapter = new MyAdapter();        rv.setAdapter(adapter);//注意        adapter.setOnItemClickListener(new OnItemClickListener() {            @Override            public void onItemClick(View view, int position) {                Toast.makeText(MainActivity.this, "---" + position, Toast.LENGTH_SHORT).show();            }        });    }    private void initData() {        list = new ArrayList<>();        for (int i = 0; i < 100; i++) {            list.add("position" + i);        }    }    class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{        OnItemClickListener listener;        public void setOnItemClickListener(OnItemClickListener listener){            this.listener = listener;        }        @Override        public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {            View view = View.inflate(MainActivity.this, R.layout.rv_item, null);            MyViewHolder holder = new MyViewHolder(view);//注意            view.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    listener.onItemClick(v, (int)v.getTag());                }            });            return holder;        }        @Override        public void onBindViewHolder(MyViewHolder holder, int position) {            holder.tv.setText(list.get(position));//注意   holder.itemView.setTag(position);        }        @Override        public int getItemCount() {            return list == null ? 0 : list.size();        }        class MyViewHolder extends RecyclerView.ViewHolder{            TextView tv;            public MyViewHolder(View itemView) {                super(itemView);                tv = (TextView) itemView.findViewById(R.id.tv);            }        }    }//注意    public interface OnItemClickListener{        public void onItemClick(View view, int position);    }}

原创粉丝点击