BaseRecyclerViewAdapterHelper源码解读(一) 封装简单的adapter和万能的BaseViewHolder

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;

  • 30
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在PyTorch源码中,有几个关键的类和函数需要解读。首先是torch.utils.data.Sampler类,它负责提供一种遍历数据集所有元素索引的方式。它的len()方法在计算数据集长度时是必要的。\[1\]接下来是torch.utils.data.DataLoader类,它是PyTorch数据加载的核心。它可以加载数据集,并支持多种参数设置,如batch size、shuffle、num_workers等。\[2\]此外,还有一个vocab类,它用于统计解释变量中涉及到的单词的出现频率,并为每个单词分配一个整数作为该单词的整数表示。@classmethod是一个装饰器,用于定义类方法。\[3\]在源码中还有一些其他的类和函数,但这些是其中的一部分。 #### 引用[.reference_title] - *1* *2* [PyTorch 源码解读之 torch.utils.data:解析数据处理全流程(非常好,一篇足够)](https://blog.csdn.net/Highlight_Jin/article/details/126206958)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Transformer实现以及Pytorch源码解读(一)-数据输入篇](https://blog.csdn.net/weixin_41806489/article/details/128380667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值