您的位置:首页 > 其它

基类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 {

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;
}


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  holder