我正在尝试使用回收器视图并处理单击事件.我已经阅读了在回收站视图项上处理onClick事件的各种方法,例如:

>在视图持有者类本身内定义单击侦听器.

>在onCreateViewHolder()中定义单击侦听器.

>定义一个界面,然后从那里开始(似乎工作太多).

所以我的第一个问题是哪个选项更好?

我目前正在使用第一种方法,如果在视图持有者类中定义单击侦听器本身就是方法,那么如何使用适配器中的上下文,因为视图持有者类是静态的.

基本上,我想拥有一个静态视图持有者,并且在click事件上,打开一个我需要上下文的新Activity.

更新:添加适配器和ViewHolder代码.

public class MyAdapter extends RecyclerView.Adapter {

private Context mContext;

private List jobs;

public MyAdapter(Context context, List jobs) {

mContext = context;

this.jobs = jobs;

}

@Override

public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {

View itemLayoutView = LayoutInflater.from(viewGroup.getContext())

.inflate(R.layout.list_item, viewGroup, false);

itemLayoutView.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(mContext, MyActivity.class);

mContext.startActivity(intent);

}

});

return new ViewHolder(itemLayoutView);

}

@Override

public void onBindViewHolder(WorkExperienceAdapter.ViewHolder viewHolder, int i) {

//bindViewHolder code

}

}

@Override

public int getItemCount() {

return jobs.size();

}

public static class ViewHolder extends RecyclerView.ViewHolder {

@InjectView(R.id.current)

TextView mCurrent;

public ViewHolder(View itemView) {

super(itemView);

ButterKnife.inject(this, itemView);

}

}

}

解决方法:

在视图持有者构造函数中,我们获得了View类的对象.您可以使用该对象来获取上下文:

class Holder extends RecyclerView.ViewHolder {

public Holder(View itemView) {

super(itemView);

Context context = itemView.getContext();

}

}

标签:android,android-recyclerview,onclick

来源: https://codeday.me/bug/20190727/1556267.html

android viewholder静态,android – 静态ViewHolder并在使用RecyclerView时获取上下文相关推荐

  1. Android 动态广播与静态广播

    学而时习,稳固而之心 目前推荐使用动态广播,现在已经很就没有使用过静态广播了. 动态广播与静态广播的联系 1 动态广播的速度要快于静态广播 2 静态广播的生存期可以比动态广播的长很多 在Manifes ...

  2. Android NDK 使用第三方静态库(转)

    源:Android NDK 使用第三方静态库 转载于:https://www.cnblogs.com/LittleTiger/p/4556382.html

  3. android 初始化类,Android 常用编程技巧/Java类的初始化顺序 (静态变量、静态初始化块、变量、初始化块、构造器)...

    1.设置屏幕的亮度: WindowManager.LayoutParams lp=getWindow().getAttributes(); lp.screenBrightness=1.0f; getW ...

  4. Android笔记 fragment入门 静态加载fragment

    fragment最初目的:为了方便平板开发界面的美化 fragment引入原因 一般市面上的软件Activity太过庞杂 每一个Activity都要在清单文件配置 清单文件也比较臃肿查找修改不便 因此 ...

  5. android适配器封装,Android万能适配器(一)封装ViewHolder

    封装 ViewHolder 简单分析ViewHolder封装.ViewHolder内部正常是保存每个页面控件的索引,那么封装时候我们可以使用容器把每个Item布局中的所有控件存储到这个容器里面,每次使 ...

  6. android 静态_Google静态地图Android

    android 静态 In this tutorial we're going to implement a google static maps in our android application ...

  7. Android手机静态ip地址网关,安卓手机Android 4.0系统静态ip设置方法【详解】

    安卓系统Android 4.0推出之后,很多网友都进行了版本的更新,但是,一些更新了Android 4.0系统的用户,表示,自从版本升级之后,就不能使用静态IP,这是怎么回事呢?小编经过研究后发现,并 ...

  8. android holder 内部类,Android RecyclerView中的ViewHolder

    在使用android提供的组件以列表的格式显示数据时,使用过ListView组件和RecyclerView组件.目前一般推荐使用RecyclerView,因为RecyclerView本身的缓存和效率比 ...

  9. Android 自定义 Lint 实现静态代码扫描工具

    文章目录 关于静态代码扫描工具 Lint的简单使用 一.Lint 与 IDE 的结合使用 二.Lint 与 gradle 命令的结合使用 具体位置如下图: 生成的HTML在浏览器打开如图: 自定义 L ...

最新文章

  1. 2059-authentication plugin 'caching_sha2_passwordcnnot bt loaded :mysql8.0数据库链接不上:
  2. MOS管好坏的判别方法
  3. linux bash shell之declare
  4. 汽车之家全系车型(包含历史停售车型)图片--参数分析
  5. edittext 选中焦点在最后_安卓开发中EditText的焦点改变处理(获取焦点和失去焦点交互变化)...
  6. linux du -h按文件大小,【玩转linux命令】du党
  7. Mysql大数据中表分区的应用
  8. 解读大型网站系统架构的演化
  9. java空心字木塔_我国七个千年古塔:第四个空心没有塔顶,最后一个是木塔无钉无铆...
  10. 程序员写三十行代码,被应届生怼:我能三行搞定!也配叫程序员?
  11. webvector将html转为svg或者png图片的工具
  12. 针对我国——国产数据库进行分析
  13. oracle 函数 如何编写
  14. 用Multisim对高频丙类谐振功率放大器进行仿真
  15. linux 快速 命令快捷键,Linux的150个命令和快捷键 整理
  16. 上海车展6大热门车型自动驾驶配置梳理
  17. ubuntu安装wps后缺少字体无法打开
  18. 高校选课系统的设计与实现
  19. python返回索引值_python取索引值
  20. javascript学习笔记-基础语法篇

热门文章

  1. python xlrd模块下载_python xlrd模块介绍
  2. 解决:git clone --depth=1 -q -b fix/ie-cannot-input-korean git://github.com/sohee-lee7/Squire.git
  3. 胶囊网络(Capsule)学习笔记
  4. 不止于1000节点! 浪潮云海完成全球最大规模单一集群云数智融合实践
  5. NinePatch图(9-Patch图,.9图)
  6. yml 配置 mapper-locations 支持多级目录
  7. TreeView简单介绍
  8. JAVA Email——利用java完成发送电子邮件(包括附件)
  9. np.linspace
  10. macOS Android Studio 如何设置Emulator模拟器独立运行