今天些项目的时候遇到了这样的问题,我想要操作 RecycleView 中某个 item 里面的子控件,通过度娘找到了一些方法,但是感觉都不全,下面整理一下:

直接上代码:

  View view = manager.findViewByPosition(0);RelativeLayout relativeLayout = (RelativeLayout)view;      //获取布局中任意控件对象TextView subjectName = relativeLayout.findViewById(R.id.tv_subject_name);LinearLayout subjectBag = relativeLayout.findViewById(R.id.rl_subject);subjectName.setTextSize(14);subjectName.getPaint().setFakeBoldText(true);subjectBag.setBackgroundResource(R.drawable.bag_subject_item_selected);

上面这种做法会报错

会报空指针异常,因为你刚刚进入这个 Activity 或者 Fragment 的时候还没有加载完此 View 所以我们要加一个判断,代码如下:

rv_subject.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {// 默认选中第一个View view = manager.findViewByPosition(0);RelativeLayout relativeLayout = (RelativeLayout)view;        //获取布局中任意控件对象TextView subjectName = relativeLayout.findViewById(R.id.tv_subject_name);LinearLayout subjectBag = relativeLayout.findViewById(R.id.rl_subject);subjectName.setTextSize(14);subjectName.getPaint().setFakeBoldText(true);subjectBag.setBackgroundResource(R.drawable.bag_subject_item_selected);}});

还要注意一点是,上面这串代码的位置一定要放正确,要不也会报错,提示没有这个方法,所放的位置为,你找到该控件的下面,代码如下:

public void initView() {subjectArray = getContext().getResources().getStringArray(R.array.subjects);rv_subject = view.findViewById(R.id.rv_subject);rv_subject.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout() {// 默认选中第一个View view = manager.findViewByPosition(0);RelativeLayout relativeLayout = (RelativeLayout)view; //获取布局中任意控件对象TextView subjectName = relativeLayout.findViewById(R.id.tv_subject_name);LinearLayout subjectBag = relativeLayout.findViewById(R.id.rl_subject);subjectName.setTextSize(14);subjectName.getPaint().setFakeBoldText(true);subjectBag.setBackgroundResource(R.drawable.bag_subject_item_selected);}});}

以上就是我的总结

附上参考博主链接: https://blog.csdn.net/d06110902002/article/details/68495853?utm_source=blogxgwz8

Android --- RecycleView获取第 i 个 item 里面的控件并进行赋值相关推荐

  1. Android ListView Item与子控件焦点问题

    经常会碰到ListView Item和子控件焦点冲突问题,查了很多资料后发现问题出在listview item的父容器布局中 android:descendantFocusability属性和子控件 ...

  2. 关于安卓listview获得item中的控件问题

    我的程序里面是用到了安卓的listview来显示数据,主要用SimpleAdapter适配器,然而怎么获取listview的item中的控件呢?就如说我这里做了一个显示地址管理. 而让我苦恼的是要怎么 ...

  3. Android之RemoteViews篇上————通知栏和桌面小控件

    Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...

  4. 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...

    [Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距

  5. android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题

    50_样式与主题 android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题 2013/5/12 50_样式与主题 ----------------- android样式和主题(st ...

  6. 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言

    3.1.4 Robotium的控件获取.操作及断言 Robotium是一款在Android客户端中的自动化测试框架,它需要模拟用户操作手机屏幕.要完成对手机的模拟操作,应该包含以下几个基本操作: (1 ...

  7. Android开发笔记(三十七)按钮类控件

    Button与ImageButton Button是文本按钮(继承自TextView),而ImageButton是图像按钮(继承自ImageView).两者之间的区别在于: 1.Button即可显示文 ...

  8. android studio实验二 Activity及常用布局和控件的使用

    实验内容 1.创建一个Android应用,创建一个Android应用,创建MainActivity和LoginActivity. 2.在MainActivity中的onCreate,onStart,o ...

  9. Android开发 入门篇(二) - 常用UI控件

    文章目录 控件 Button TextView EditText ImageView ProgressBar AlertDialog ProgressDialog 布局 LenearLayout an ...

最新文章

  1. 开源炫酷css轮播图 可直接引入html文件使用 含注释 jQuery插件
  2. g_thread_init
  3. php 多只能上传20个文件解决办法,修改php.ini 的max_file_uploads
  4. 《生活随笔》相关内容将转移到个人微信公众号,本博客专注技术内容。
  5. RabbitMQ管理(1)——多租户与权限
  6. MySQL 5.7.18的安装与主从复制
  7. 091115 T UI生成的类
  8. selenium中录制拖拽动作
  9. PAT Basic 1011
  10. electron 屏幕标注_gInk:一款好用的屏幕标注写画软件
  11. CISCO路由基本配置命令
  12. GandCrab勒索病毒
  13. 从D语言看C++ Template语法
  14. MDClub一个漂亮轻量的开源论坛系统
  15. Beta版本——第七次冲刺博客
  16. CART分类与回归树
  17. 《Python网络爬虫从入门到实践 第2版》第14章 爬虫实践一:维基百科
  18. 《教务信息管理系统》项目总结
  19. Unity3d C#实现类似于王者荣耀技能读条和CD冷却的功能(含源码)
  20. Anaconda点开 一直停留在 loading applications。。。

热门文章

  1. MySQL触发器使用详解
  2. uber在限制新司机加入了,看看新政策把
  3. 打算尝试瑜伽,看是否能解决长期困扰的胃痛问题
  4. Linux set命令参数及与env, export的区别
  5. 开源车牌识别项目,OpenALPR
  6. Pygame:编写一个小游戏
  7. Win7下面wubi安装Ubuntu14.04LTS
  8. Ubuntu 安装软件笔记
  9. AVCaptureMovieFileOutput 视频方向(锁定竖屏or不锁定都可以)
  10. MapReduce中的partitioner