基类holder封装
2016-11-09 10:42
239 查看
/*自定义holder,优化适配器,减少findViewByID/
package com.woojn.quickindexdemo.holder;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.woojn.quickindexdemo.adapter.MyBaseAdapter;
/**
* 封装适配器中的getView方法:填充布局,查找子控件,settag, 刷新子控件显示
*/
public abstract class BaseHolder {
}
package com.woojn.quickindexdemo.holder;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.woojn.quickindexdemo.adapter.MyBaseAdapter;
/**
* 封装适配器中的getView方法:填充布局,查找子控件,settag, 刷新子控件显示
*/
public abstract class BaseHolder {
public Context context; /** 指ListView */ public ViewGroup parent; public MyBaseAdapter<T> adapter; /** 列表项位置 */ public int position; /** 列表项实体 */ public T bean; /** 列表项布局 */ public View itemView; public LayoutInflater inflater; public BaseHolder(Context context, ViewGroup parent, MyBaseAdapter<T> adapter, int position, T bean) { this.context = context; this.parent = parent; this.adapter = adapter; this.position = position; this.bean = bean; } /** * 初始化holder, 填充布局,查找子控件等 */ public void init() { inflater = LayoutInflater.from(context); // 创建列表项布局, 并查找子控件 itemView = onCreateView(context, parent, position, bean); // setTag操作 itemView.setTag(this); } /** * 创建列表项布局视图, 并查找item中的子控件 * @param context * @param parent * @param bean 列表项对应的javabean * @param position 列表项位置 * @return */ public abstract View onCreateView(Context context, ViewGroup parent, int position, T bean); /** * 更新javabean及位置,刷新子控件的显示 * * @param bean * @param position */ protected abstract void onRefreshView(T bean, int position); /** * 刷新item子控件显示 * @param bean * @param position */ public void refreshView(T bean, int position) { this.bean = bean; this.position = position; onRefreshView(bean, position); } /** * 返回item布局 * @return */ public View getItemView() { return itemView; }
}
相关文章推荐
- c#基类 常用数据验证的封装,数字,字符,邮箱的验证
- Android设计模式之Activity基类封装
- 一般Fragment基类封装
- 封装BaseActivity基类加沉浸式标题栏 隐藏状态栏 加Di 4000 alogUtils进度条工具类
- 使用注解将EventBus封装抽取到基类
- 自己封装的一个泛型集合基类
- Java+Selenium3框架设计篇2-Selenium方法的二次封装和页面基类
- Android线程封装基类Thread
- 基类Base和DialogFragment类封装的nice对话框
- 数据操作层的基类,主要封装了数据的增,删,改,查功能
- Android Activity基类封装
- 关于项目中的一些经验:封装activity、service的基类,封装数据对象
- webView封装基类,wk/ui依据系统版本
- ViewHolder的二次封装
- Android线程封装基类Thread
- 万用适配器(封装通用的基类GeneralAdapter)
- Android 6.0 以上权限大坑和权限检查基类封装
- ListView 优化之ViewHolder封装
- RecyclerView之ViewHolder封装实现点击、长按、headerView和多选功能
- Android RecyclerView(五)封装Holder与Adapter(Android 5.0 新特性)