Android:随笔——取代findViewById

简介: 转载请标明地址 QuincySx: http://www.jianshu.com/p/0e9f1348a872在安卓中最恶心的一条语句莫过于findViewById(),还好有ButterKnife等注入框架来帮我们解决这个问题,今天给大家介绍一...

转载请标明地址 QuincySxhttp://www.jianshu.com/p/0e9f1348a872

在安卓中最恶心的一条语句莫过于findViewById(),还好有ButterKnife等注入框架来帮我们解决这个问题,今天给大家介绍一个小技巧在不借助第三方框架的情况下来优雅的解决这个问题(此片文章字数比较短)


我们今天用泛型的方法来解决findViewById()麻烦的问题,代码特别简单直接上代码

private <T> T $(@IdRes int resid) {
        return (T) findViewById(resid);
    }

你没有看错就是这一句代码

其实在大家理解来看这样写就可以,但是呢由于只用到了T而没有声明,所以他会报错,所以就有了上文的写法

private T $(@IdRes int resid) {
        return (T) findViewById(resid);
    }

如果在类上加泛型就可以这样写了

public abstract class ColorfulActivity<T>{
    private T $(@IdRes int resid) {
        return (T) findViewById(resid);
    }
}

如果这样写的话就没有任何问题了,还是推荐最上边的写法 简单明了

用法

下面在说一下用法

TextView textView=$(R.id.text);
EditText editText=$(R.id.edit);

总结

这样简洁的语法,没有复杂的转型看着简洁吧

目录
相关文章
|
Java Android开发 数据格式
Android注解——不用ButterKnife也能自己搞定findViewById和onClick事件绑定
ButterKnife大家肯定都是用过啦,这是谷歌大神Jake Wharton写的一个开源的IOC框架,用起来很方便,帮我们省去了很多重复机械的代码。如果还有小伙伴,只会用findViewById的方法获取View实例,那就真的很Out咯! image.
1209 0
|
前端开发 Android开发
|
Android开发
Android高效率编码-findViewById()的蜕变-注解,泛型,反射
<div class="markdown_views"> <h1 id="android高效率编码-findviewbyid的蜕变-注解泛型反射">Android高效率编码-findViewById()的蜕变-注解,泛型,反射</h1> <hr> <pre><code>Android的老朋友findViewById()篇! </code></pre> <h2 id="先
2020 0
|
Android开发
android中在Layout布局文件中添加控件ID,在Activity中findViewById找不到
        一直用着好好的eclipse开发android的应用,突然新建的项目中发现在Layout布局文件中控件ID在R中不能自动生成了。然后在Eclipse中通过Project->Clean操作之后在R中就生成了控件的ID,这样也太麻烦了。
1365 0
|
20天前
|
XML 存储 Java
探索安卓开发之旅:从基础到进阶
【9月更文挑战第37天】安卓开发,一个充满无限可能的领域。它不仅关乎技术的深度与广度,更关乎开发者的成长与突破。本文将带你走进安卓开发的世界,从基础知识的学习到进阶技巧的掌握,一起感受编程的魅力与乐趣。
|
13天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件实践
【10月更文挑战第4天】在安卓开发的海洋中,自定义控件是那片璀璨的星辰。它不仅让应用界面设计变得丰富多彩,还提升了用户体验。本文将带你探索自定义控件的核心概念、实现过程以及优化技巧,让你的应用在众多竞争者中脱颖而出。
|
14天前
|
Java Android开发 Swift
安卓与iOS开发对比:平台选择对项目成功的影响
【10月更文挑战第4天】在移动应用开发的世界中,选择合适的平台是至关重要的。本文将深入探讨安卓和iOS两大主流平台的开发环境、用户基础、市场份额和开发成本等方面的差异,并分析这些差异如何影响项目的最终成果。通过比较这两个平台的优势与挑战,开发者可以更好地决定哪个平台更适合他们的项目需求。
54 1
|
16天前
|
Android开发
Android开发表情emoji功能开发
本文介绍了一种在Android应用中实现emoji表情功能的方法,通过将图片与表情字符对应,实现在`TextView`中的正常显示。示例代码展示了如何使用自定义适配器加载emoji表情,并在编辑框中输入或删除表情。项目包含完整的源码结构,可作为开发参考。视频演示和源码详情见文章内链接。
42 4
Android开发表情emoji功能开发
|
14天前
|
Web App开发 安全 程序员
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
多年的互联网寒冬在今年尤为凛冽,坚守安卓开发愈发不易。面对是否转行或学习新技术的迷茫,安卓程序员可从三个方向进阶:1)钻研谷歌新技术,如Kotlin、Flutter、Jetpack等;2)拓展新功能应用,掌握Socket、OpenGL、WebRTC等专业领域技能;3)结合其他行业,如汽车、游戏、安全等,拓宽职业道路。这三个方向各有学习难度和保饭碗指数,助你在安卓开发领域持续成长。
42 1
FFmpeg开发笔记(五十五)寒冬里的安卓程序员可进阶修炼的几种姿势
|
12天前
|
缓存 搜索推荐 Android开发
安卓开发中的自定义控件基础与进阶
【10月更文挑战第5天】在Android应用开发中,自定义控件是提升用户体验和界面个性化的重要手段。本文将通过浅显易懂的语言和实例,引导你了解自定义控件的基本概念、创建流程以及高级应用技巧,帮助你在开发过程中更好地掌握自定义控件的使用和优化。
25 10