您的位置:首页 > 其它

RecyclerView的简单实用和点击事件

2018-02-25 09:59 239 查看
RecyclerView本身和listview一样,但是RecyclerView没有Itme的点击事件,所以要自己去实现。
1.要使用RecyclerView首先要添加RecyclerView的相关依赖
dependencies { compile 'com.android.support:recyclerview-v7:21.0.0' }
别忘了更新一下   这样就可以在布局文件里使用了  这里就不演示了
2.在java代码里加载控件创建Adapter 实现3个方法,这里RecyclerView继承的是RecyclerView.Adapter和listView不一样
public class WDFD_WWC_Adapter extends RecyclerView.Adapter<WDFD_WWC_Adapter.ViewHolder> {
private Activity activity;
public WDFD_WWC_Adapter(Activity activity) {
this.activity = activity;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(activity).inflate(R.layout.wdfd_wwc_itme,parent,false);
ViewHolder myViewHolder = new ViewHolder(view);
return myViewHolder;
}

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

}

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

public static class ViewHolder extends RecyclerView.ViewHolder {
public ViewHolder(View itemView) {
super(itemView);
}
}
}
4.在主页面去加载并且把Adapter加载给RecyclerView
mWwcRv = (RecyclerView) view.findViewById(R.id.wdfd_wwc_rv);
wdfd_wwc_adapter = new WDFD_WWC_Adapter(mActivity);
mWwcRv.setAdapter(wdfd_wwc_adapter);
这句是设置RecyclerView加载的样式的  ,这个是垂直的
mWwcRv.setLayoutManager(new LinearLayoutManager(mActivity,
LinearLayoutManager.VERTICAL,false));
5.因为RecyclerView 没有给我们提供Itme的点击事件所以我们要自己去写,在Adapter里面实现
首先初始化一个变量
private OnItemClickListener mOnItemClickListener;
然后写一个接口里面实现两个方法一个点击,一个长按
public interface OnItemClickListener{
void onClick( int position);
void onLongClick( int position);
}然后写个个对外的set方法方便使用的时候调用
public void setOnItemClickListener(OnItemClickListener onItemClickListener ){
this. mOnItemClickListener=onItemClickListener;
}接着在onBindViewHolder方法里面判断一下不为空就实现点击事件@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
<
4000
strong>if[/b]( mOnItemClickListener!= null) {
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mOnItemClickListener.onClick(position);
}
});
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
mOnItemClickListener.onLongClick(position);
return false;
}
});
}
最后在主页里实现就行了
wdfd_wwc_adapter.setOnItemClickListener(new WDFD_WWC_Adapter.OnItemClickListener() {、
//这个是点击事件
@Override
public void onClick(int position) {

}
//这个是长按事件
@Override
public void onLongClick(int position) {

}
});
这样一个常用的RecyclerView 就完成了,
RecyclerView 相比 ListView 在基础使用上的区别主要有如下几点:
  ViewHolder 的编写规范化了
  RecyclerView 没有提供Itme的点击事件需要自己使用
  RecyclerView 需要多出一步 LayoutManager 的设置工作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  RecyclerView 的使用