package com.commsource.uiwrapper;
import android.view.View;
public abstract class BaseUIDataWrapper<T> {
public T data;
public ViewHolder holder;
protected OnUIGestureListener<T> mOnClickUIGestureListener;
public BaseUIDataWrapper(T data, View view) {
this.data = data;
this.holder = onCreateViewHolder(view);
bindViewHolder(data, holder, null);
}
public abstract ViewHolder onCreateViewHolder(View view);
public abstract void bindViewHolder(T data, ViewHolder holder, int[] playload);
/**
* 全部刷新
*/
public void notifyDataChanged() {
bindViewHolder(data, holder, null);
}
/**
* 设置监听
* @param onClickUIGestureListener
*/
public void setOnClickUIGestureListener(OnUIGestureListener<T> onClickUIGestureListener){
this.mOnClickUIGestureListener = onClickUIGestureListener;
}
/**
* 局部刷新
* @param playloads
*/
public void notifyDataChanged(int[] playloads) {
bindViewHolder(data, holder, playloads);
}
public static class ViewHolder {
public View itemView;
public ViewHolder(View view) {
this.itemView = view;
if (view != null) {
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 点击监听
}
});
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
return false;
}
});
}
}
}
public interface OnUIGestureListener<K> {
void onClickUI(View view, K data);
void onLongClickUI(View view, K data);
}
}
今天突然想把数据跟Ui结合起来,于是写了这样一个小框架 希望能有用