Android O转换为findViewById不再需要了吗?

时间:2017-07-13 23:41:02

标签: java android android-studio

我最近在Android Studio中更新了我的android SDK和构建工具到API 26,我直接注意到当我做这样的事情时,Android Studio将我的视图转换标记为“多余”:

TextView itemName = (TextView) findViewById(R.id.menuItemName);

经过一些研究,我发现自从SDK 26以来,findViewById使用Java 8功能返回相同的对象类型,但我想知道的是删除所有强制转换是否完全安全。这会在26之前导致Android上出现任何问题吗?有关这方面的任何更多信息将有所帮助,因为我在互联网上找不到太多。提前谢谢。

1 个答案:

答案 0 :(得分:39)

方法签名随着您的注意而发生了变化,现在看起来像是:

public <T extends View> T findViewById(int id);

与旧版(SDK 26之前版)相比:

public View findViewById(int id);

因此,只要您使用SDK 26(或更新版本)编译您的项目,您就可以安全地从代码中删除广告素材,因为您将使用不再需要的新findViewById()它。

  

所以minSdk低于26会不会引起问题?

不,minSdktargetSdk都不重要。重要的是compileSdk必须26或更高。