基类holder封装

/*自定义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;
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值