前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android Study 之 findViewById 变迁之路

Android Study 之 findViewById 变迁之路

作者头像
贺biubiu
发布2019-06-10 22:55:15
8110
发布2019-06-10 22:55:15
举报
文章被收录于专栏:HLQ_Struggle

LZ-Says:

想当年,周五了,我们会说:

现在,一到周六,想想还要继续上班,瞬间千万个不爽席卷而来,XXOO此处省略n字。。。 休息一天的好处在于,让你感觉一天休息时间格外珍贵,而坏处在于,劳资TMD还没休息过来,结果第二天又开始上班了,而且一连6天~! 神呐,Help me~!


前言

今天我们一块来聊聊项目常用的findViewById,这个东西可以简单理解为:

初始化控件,实例化控件,方便进行其他操作

一般来说,我们通常这么写:

private void initView() { TextView tvTest = (TextView) findViewById(R.id.id_test); }

上面的例子很简单,只是初始化一个TextView,但是在实际项目中,每个Activity,Fragment或者Adapter中有n个控件,每个控件都需要我们实例化控件,才能对其进行操作,一次次的findViewById,感觉好烦呐~!

有没有好办法呢?当然有很多种方式,但是我们要找适合自己项目的,下面将会为大家依次举例说明~

变迁路 漫漫其修远兮

通过注解方式简化findViewById

在前几年,Xutils比较火爆,火爆的原因有很多,简单列举下,LZ更看好Xutils使用方便,至少为我们封装了很多常用的工具,就好比常用的恶心的图片处理,Xutils有很好的支持,同样,Xutils也支持注解方式去简化findViewById,简单举例如下:

// xUtils的view注解要求必须提供id,以使代码混淆不受影响。

@ViewInject(R.id.id_test) TextView tvTest ;

比较出名的ButterKnife,之前LZ也对此专门学习了下,相关文章地址如下:

http://blog.csdn.net/u012400885/article/details/73729484

同理简单举例如下:

@BindView(R.id.id_test) TextView tvTest;

以上简单为大家列举俩种,至少是LZ用到过的,当让有关支持注解方式的好用的还有很多,欢迎大家交流,一起学习~

个人封装findViewById

刚刚在网上搜索,突然看到有一哥儿们经过其老师启发,个人封装了一个,LZ看到感觉不错,先试试看看好不好用。

简单修改之后,通过测试,感觉还不错,下面为大家附上源码:

那么我们该如何使用呢?简单说下,调用有如下俩种方式:

通过链式调用,你可以直接调用封装好的setText or setImgResource进行直接赋值;

通过链式调用getView获取控件实例,然后进行相应操作即可。

还有一点,大家可自行根据项目进行拓展封装类。

下面为大家附上具体俩种方式调用以及运行结果:

  • 方式一 调用方式:

FindView.with(this).setTextContent(R.id.id_test, "Hello").setImageResource(R.id.iv_test,R.mipmap.ic_launcher); 1

运行结果:

TextView textView= FindView.with(this).getView(R.id.id_test); textView.setText("你好");

  • 方式二 调用方式:

TextView textView= FindView.with(this).getView(R.id.id_test); textView.setText("你好");

运行结果:

通过泛型来简化findViewById

抽取泛型方法为公共类

谷歌爸爸的DataBinding

而接下来的内容,有兴趣点击原文阅读即可~

暂未找到合适代码块排版,Sorry~


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 贺biubiu 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档