Android --- RecycleView获取第 i 个 item 里面的控件并进行赋值
今天些项目的时候遇到了这样的问题,我想要操作 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 里面的控件并进行赋值相关推荐
- Android ListView Item与子控件焦点问题
经常会碰到ListView Item和子控件焦点冲突问题,查了很多资料后发现问题出在listview item的父容器布局中 android:descendantFocusability属性和子控件 ...
- 关于安卓listview获得item中的控件问题
我的程序里面是用到了安卓的listview来显示数据,主要用SimpleAdapter适配器,然而怎么获取listview的item中的控件呢?就如说我这里做了一个显示地址管理. 而让我苦恼的是要怎么 ...
- Android之RemoteViews篇上————通知栏和桌面小控件
Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 文章目录 Android之RemoteViews篇上----通知栏和桌面小控件 一.目录 二.RemoteViews的概 ...
- 【Android自定义View实战】之自定义评价打分控件RatingBar,可以自定义星星大小和间距...
[Android自定义View实战]之自定义评价打分控件RatingBar,可以自定义星星大小和间距
- android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题
50_样式与主题 android学习笔记---50_样式与主题,给控件使用样式,给应用使用主题 2013/5/12 50_样式与主题 ----------------- android样式和主题(st ...
- 腾讯Android自动化测试实战3.1.4 Robotium的控件获取、操作及断言
3.1.4 Robotium的控件获取.操作及断言 Robotium是一款在Android客户端中的自动化测试框架,它需要模拟用户操作手机屏幕.要完成对手机的模拟操作,应该包含以下几个基本操作: (1 ...
- Android开发笔记(三十七)按钮类控件
Button与ImageButton Button是文本按钮(继承自TextView),而ImageButton是图像按钮(继承自ImageView).两者之间的区别在于: 1.Button即可显示文 ...
- android studio实验二 Activity及常用布局和控件的使用
实验内容 1.创建一个Android应用,创建一个Android应用,创建MainActivity和LoginActivity. 2.在MainActivity中的onCreate,onStart,o ...
- Android开发 入门篇(二) - 常用UI控件
文章目录 控件 Button TextView EditText ImageView ProgressBar AlertDialog ProgressDialog 布局 LenearLayout an ...
最新文章
- 开源炫酷css轮播图 可直接引入html文件使用 含注释 jQuery插件
- g_thread_init
- php 多只能上传20个文件解决办法,修改php.ini 的max_file_uploads
- 《生活随笔》相关内容将转移到个人微信公众号,本博客专注技术内容。
- RabbitMQ管理(1)——多租户与权限
- MySQL 5.7.18的安装与主从复制
- 091115 T UI生成的类
- selenium中录制拖拽动作
- PAT Basic 1011
- electron 屏幕标注_gInk:一款好用的屏幕标注写画软件
- CISCO路由基本配置命令
- GandCrab勒索病毒
- 从D语言看C++ Template语法
- MDClub一个漂亮轻量的开源论坛系统
- Beta版本——第七次冲刺博客
- CART分类与回归树
- 《Python网络爬虫从入门到实践 第2版》第14章 爬虫实践一:维基百科
- 《教务信息管理系统》项目总结
- Unity3d C#实现类似于王者荣耀技能读条和CD冷却的功能(含源码)
- Anaconda点开 一直停留在 loading applications。。。