RecyclerView.Adapter结合ButterKnife封装
来源:互联网 发布:福建 土豪 知乎 编辑:程序博客网 时间:2024/06/05 09:20
public class BaseViewHolder extends RecyclerView.ViewHolder { View mView ; public BaseViewHolder(View itemView) { super(itemView); this.mView=itemView; } public View getView(){ return mView; }}
package animation.sunset.com.animationdome.rcyc;import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import java.util.List;/** * Created by sunset on 17-5-2. */public abstract class BaseRecycAdapter<T> extends RecyclerView.Adapter<BaseViewHolder> { Context mContext; List<T> mList; private OnItemClickListener mOnItemClickListener; public BaseRecycAdapter(List<T> list, Context context) { this.mContext = context; this.mList = list; } @Override public BaseViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(mContext).inflate(getContentView(viewType), parent,false); return new BaseViewHolder(itemView); } @Override public void onBindViewHolder(final BaseViewHolder holder, final int position) { holder.getView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //这个地方一定要判断 不然你没有注册点击事件的时候,点击Item的时候会报错 if(mOnItemClickListener==null){ returen; } mOnItemClickListener.onItemClick(position); } }); covert(holder, mList.get(position), position); } @Override public int getItemCount() { return mList == null ? 0 : mList.size(); } protected abstract int getContentView(int viewType); protected abstract void covert(BaseViewHolder holder, T data, int position); public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) { this.mOnItemClickListener = mOnItemClickListener; } public interface OnItemClickListener { void onItemClick(int position); }}
使用示例
public class RecyclerAdapter extends BaseRecycAdapter<String> { @BindView(R.id.rcyc_item_text) TextView rcycItemText; public RecyclerAdapter(List<String> list, Context context) { super(list, context); } @Override protected int getContentView(int viewType) { return R.layout.activity_rcyc_item; } @Override protected void covert(BaseViewHolder holder, String data, int position) { ButterKnife.bind(this, holder.getView()); rcycItemText.setText(data); }}
public class RcycActivity extends AppCompatActivity { List<String> strings; @BindView(R.id.rcycview) RecyclerView rcycview; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_rcyc); ButterKnife.bind(this); init(); } private void init() { strings = new ArrayList<>(); for (int i = 0; i < 100; i++) { strings.add("封装RecyclerView" + i); } rcycview.setLayoutManager(new LinearLayoutManager(this)); rcycview.setAdapter(new RecyclerAdapter(strings,this)); }}
0 0
- RecyclerView.Adapter结合ButterKnife封装
- ButterKnife结合RecyclerView.Adapter一起使用
- ButterKnife结合RecyclerView.Adapter一起使用
- 封装RecyclerView.Adapter
- RecyclerView Adapter 封装
- simple封装RecyclerView.Adapter
- RecyclerView Adapter简单封装
- RecyclerView Adapter 封装
- RecyclerView.Adapter的封装
- ButterKnife在RecyclerView adapter中的使用
- Recyclerview Adapter 的简单封装
- RecyclerView.Adapter 的简单封装
- RecyclerView 封装Adapter之BaseRecyclerAdapter
- 简单封装RecyclerView的Adapter
- Android 封装RecyclerView的Adapter
- RecyclerView.Adapter的基本封装
- 关于RecyclerView的Adapter封装
- 针对recyclerView的adapter封装
- .Net 小技巧(一)
- 5.2日学习总结
- osg节点拾取
- 异常
- Codeforces 689E Mike and Geometry Problem【离散化+线段树+组合数】
- RecyclerView.Adapter结合ButterKnife封装
- 【学习笔记】mysql的查询状态
- centos6.5安装Hadoop2.4.1(完全分布式)
- Git操作流程
- C++实现委托机制(二)
- 有些arp请求报文中为什么会有目的mac地址(不使用广播地址)
- OC 和 swift 混合制作 framework
- HEVC算法和体系结构:编码框架
- HDOJ--2161 prmes + HDOJ--2551 竹青遍野