8.0小知识点Android开发经验谈

小知识点-API26开始findViewById不需要强制类型转

2017-12-18  本文已影响142人  未见哥哥

findViewById不需要强制类型转化啦

最近发现,在编写 findViewById 时,我没有进行类型转化,居然可以编译通过,我以为是 as 出问题了,然后 clean 几次,rebuild 几次都是一样,奇怪的是,项目照样可以运行,之后看源码才知道这是新的 api 新的支持。

在 Android Studio 的 build.gradle 中配置了 compile sdk 配置为 26 ,那么我们在编写 findViewById 时就不需要再像以前一样需要 cast 类型了。

build.gradle

具体的源码如下:

这段 code snippet 是从分别从 api26 和 api25 中摘抄下来的。现在从两段代码可以看出为什么不需要转化了吧。

我们以前是这么去 findViewById 的,但是在 as 中会提示这种 cast 是冗余的,建议去除。

旧的方式

通过下面3种方式去除as的提示:

clean之后

这3方式都是只能在当前activity中去去除冗余的转化,但是对于比较大的项目来说,肯定存在很多 cast 操作,那么这时要怎么去处理呢?

下面举例的是两个 Activity 分别都有 findViewById 进行类型强制转化的代码,演示利用 as 工具将冗余的 cast 部分清除。

第一个activity 第二个activity

操作步骤:
分别点击 Analyze -> Code Cleanup -> While Project 即可


操作截图

点击 OK 之后那么两个 Activity 强制转化部分就被清除掉了。当前也可以双击 shift 输入 Code Cleanup 更快进入这个这个页面。

上一篇下一篇

猜你喜欢

热点阅读