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.
1219 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="先
2028 0
|
Android开发
android中在Layout布局文件中添加控件ID,在Activity中findViewById找不到
        一直用着好好的eclipse开发android的应用,突然新建的项目中发现在Layout布局文件中控件ID在R中不能自动生成了。然后在Eclipse中通过Project->Clean操作之后在R中就生成了控件的ID,这样也太麻烦了。
1376 0
|
11天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
17天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
3天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
18天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
21天前
|
XML 存储 Java
探索安卓开发之旅:从新手到专家
【10月更文挑战第35天】在数字化时代,安卓应用的开发成为了一个热门话题。本文旨在通过浅显易懂的语言,带领初学者了解安卓开发的基础知识,同时为有一定经验的开发者提供进阶技巧。我们将一起探讨如何从零开始构建第一个安卓应用,并逐步深入到性能优化和高级功能的实现。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
18天前
|
存储 API 开发工具
探索安卓开发:从基础到进阶
【10月更文挑战第37天】在这篇文章中,我们将一起探索安卓开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和建议。我们将从安卓开发的基础开始,逐步深入到更复杂的主题,如自定义组件、性能优化等。最后,我们将通过一个代码示例来展示如何实现一个简单的安卓应用。让我们一起开始吧!