RecycleView+ViewDataBinding+BaseAdapter
来源:互联网 发布:ps4白金神作 知乎 编辑:程序博客网 时间:2024/06/06 03:42
BaseRecyclerViewHolder.java
package com.xl.test.base.baseAdapter;import android.databinding.DataBindingUtil;import android.databinding.ViewDataBinding;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.ViewGroup;/** * Created by hushendian on 2017/10/24. */public abstract class BaseRecyclerViewHolder<T, D extends ViewDataBinding> extends RecyclerView .ViewHolder { public D binding; public BaseRecyclerViewHolder(ViewGroup viewGroup, int layoutId) { super(DataBindingUtil.inflate(LayoutInflater.from(viewGroup.getContext()), layoutId, viewGroup, false).getRoot()); binding = DataBindingUtil.getBinding(this.itemView); } public abstract void onBindViewHolder(T object, final int position); void onBaseBindViewHolder(T object, final int position) { onBindViewHolder(object, position); binding.executePendingBindings(); }}
BaseRecyclerViewAdapter.java
package com.xl.test.base.baseAdapter;import android.support.v7.widget.RecyclerView;import android.util.Log;import java.util.ArrayList;import java.util.List;/** * Created by hushendian on 2017/10/25. */public abstract class BaseRecyclerViewAdapter<T> extends RecyclerView.Adapter<BaseRecyclerViewHolder> { private List<T> data = new ArrayList<>(); protected OnItemClickListener<T> listener; protected OnItemLongClickListener<T> onItemLongClickListener; @Override public void onBindViewHolder(BaseRecyclerViewHolder holder, int position) { holder.onBaseBindViewHolder(data.get(position), position); } @Override public int getItemCount() { Log.d("BaseRecyclerViewAdapter", "getItemCount: "+data.size()); return data.size(); } public void addAll(List<T> data) { this.data.addAll(data); } public void add(T t) { this.data.add(t); } public void clear() { this.data.clear(); } public void remove(T t) { this.data.remove(t); } public void remove(int position) { this.data.remove(position); } public void removeAll(List<T> ts) { this.data.removeAll(ts); } public void setOnItemClickListener(OnItemClickListener<T> listener) { this.listener = listener; } public List<T> getData() { return data; } public void setOnItemLongClickListener(OnItemLongClickListener<T> onItemLongClickListener) { this.onItemLongClickListener = onItemLongClickListener; }}
具体调用Adapter
package com.xl.test.adapter;import android.text.TextUtils;import android.util.Log;import android.view.View;import android.view.ViewGroup;import com.xl.test.R;import com.xl.test.base.baseAdapter.BaseRecyclerViewAdapter;import com.xl.test.base.baseAdapter.BaseRecyclerViewHolder;import com.xl.test.bean.GankIoDataBean;import com.xl.test.databinding.ItemAndroidBinding;import com.xl.test.utils.ImageUtils;import com.xl.test.view.webView.WebViewActivity;/** * Created by hushendian on 2017/11/6. */public class AndroidAdapter extends BaseRecyclerViewAdapter<GankIoDataBean.ResultBean> { @Override public BaseRecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { return new ViewHolder(parent, R.layout.item_android); } private class ViewHolder extends BaseRecyclerViewHolder<GankIoDataBean.ResultBean, ItemAndroidBinding> { public ViewHolder(ViewGroup viewGroup, int layoutId) { super(viewGroup, layoutId); } @Override public void onBindViewHolder(final GankIoDataBean.ResultBean object, int position) { } }}
阅读全文
0 0
- RecycleView+ViewDataBinding+BaseAdapter
- 仿RecycleView.Adapter封装BaseAdapter
- Android RecycleView上拉加载BaseAdapter(二)
- RecycleView(BaseViewHolder+BaseAdapter+不同类型适配+点击事件)
- recycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- recycleview
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- RecycleView
- recycleview
- 负载均衡之Haproxy配置详解(及httpd配置)
- 图片位数(bites)的区别
- 解决axios IE11 Promise对象未定义
- VB.NET 基于科大讯飞 图灵机器人 语音机器人
- node.js路由控制
- RecycleView+ViewDataBinding+BaseAdapter
- 向下-Div随鼠标拖动改变高度
- python从入门到入坟 四(吕万友)
- excel前端导出(bootstrap-table,tableExport)
- Next Greater Element I
- hql 语句:关联查询left join 和count连用
- Android ScrollView去掉滚动条及ScrollView属性
- JEECG t:autocomplete 自动补全, 生成自己需要展示格式
- git 小结