1
public interface OnClick{
void OnClicklistener (int position);
void OnLongClicklistener (int position); }
OnClick onClick;
public void setOnClick(
OnClick onClick){ this.onClick=onClick; }
/**--------------------------------------------------------------------------------------------------------------------*/
2、
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyViewHolder>{
OnItemClickListener listener;
public void setOnItemClickListener(OnItemClickListener listener){
this.listener = listener;
}
@Override
public MyAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view=View.inflate(MainActivity.this,R.layout.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(MyAdapter.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);
}
}
/**-----------------------------------------------------------------------------------------------------------------------------*/
3、
//适配器
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);
}
}
}
/**---------------------------------------------------------------------------------------------------------------*/
4、
package com.example.recyclerviewdemo;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> implements View.OnClickListener{
private String[] datas;
public MyAdapter(String[] datas) {
this.datas = datas;
}
private OnRecyclerViewItemClickListener mOnItemClickListener = null;
//define interface
public static interface OnRecyclerViewItemClickListener {
void onItemClick(View view , String data);
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item, viewGroup, false);
ViewHolder vh = new ViewHolder(view);
//将创建的View注册点击事件
view.setOnClickListener(this);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.mTextView.setText(datas[position]);
//将数据保存在itemView的Tag中,以便点击时进行获取
viewHolder.itemView.setTag(datas[position]);
}
@Override
public void onClick(View v) {
if (mOnItemClickListener != null) {
//注意这里使用getTag方法获取数据
mOnItemClickListener.onItemClick(v,(String)v.getTag());
}
}
public void setOnItemClickListener(OnRecyclerViewItemClickListener listener) {
this.mOnItemClickListener = listener;
}
//获取数据的数量
@Override
public int getItemCount() {
return datas.length;
}
//自定义的ViewHolder,持有每个Item的的所有界面元素
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView mTextView;
public ViewHolder(View view){
super(view);
mTextView = (TextView) view.findViewById(R.id.text);
}
}
}
adapter