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

我最近在Android Studio中将我的android SDK和构建工具更新为API 26,当我执行以下操作时,我直接注意到Android

Studio将我的视图演员标记为“冗余”:

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

经过一些研究,我发现自SDK 26起,findViewById使用Java

8功能来返回相同的对象类型,但是我想知道的是,删除所有强制类型转换是否完全安全。这会在Android

26之前的版本上引起任何问题吗?有关此方面的更多信息将对您有所帮助,因为我在互联网上找不到太多信息。提前致谢。

回答:

正如您所注意到的,方法签名已更改,现在看起来像:

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

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

public View findViewById(int id);

因此只要您使用SDK 26(或更高版本)来

项目,就可以安全地从代码中删除强制类型转换,因为您将使用findViewById()不再需要的强制类型。

因此,将minSdk设置为低于26不会造成问题吗?

不,minSdk也不targetSdk重要。重要的是compileSdk哪个必须26更高。

以上是 不再需要Android O强制转换为findViewById吗? 的全部内容, 来源链接: utcz.com/qa/410454.html

回到顶部