private SparseArray mItemViews;
//子布局
private View mView;
//初始化ViewHolder
public BaseViewHolder(View itemView) {
super(itemView);
mView = itemView;
mItemViews = new SparseArray<>();
}
/**
-
获取子控件
-
-
子控件的id
-
@param viewId 返回子控件
-
@return
*/
public View getView(@IdRes int viewId) {
View view = mItemViews.get(viewId);
if (view == null) {
view = mView.findViewById(viewId);
mItemViews.put(viewId, view);
}
return view;
}
/**
-
通过strings.xml文件给TextView设置文本
-
-
子控件的id
-
@param viewId 子控件在strings.xml中的文本
-
@param resId 返回子控件
-
@return BaseViewHolder
*/
public BaseViewHolder setText(@IdRes int viewId, @StringRes int resId) {
TextView textView = (TextView) getView(viewId);
textView.setText(resId);
return this;
}
/**
-
通过String给TextView设置文本
-
-
子控件的id
-
@param viewId 子控件中的文本
-
@param text 返回子控件
-
@return BaseViewHolder
*/
public BaseViewHolder setText(@IdRes int viewId, String text) {
TextView textView = (TextView) getView(viewId);
if (text != null) {
textView.setText(text);
} else {
textView.setText(“”);
}
return this;
}
/**
-
通过SpannableStringBuilder给TextView设置文本
-
@param viewId View的id
-
@param text 文本
-
@return BaseViewHolder
*/
public BaseViewHolder setText(@IdRes int viewId, SpannableStringBuilder text) {
TextView textView = (TextView) getView(viewId);
if (text != null) {
textView.setText(text);
} else {
textView.setText(“”);
}
return this;
}
/**
-
通过drawable文件夹中的资源设置图片
-
@param viewId view的id
-
@param resId 文本
-
@return BaseViewHolder
*/
public BaseViewHolder setImageResource(@IdRes int viewId, @DrawableRes int resId) {
ImageView imageView = (ImageView) getView(viewId);
imageView.setImageResource(resId);
return this;