不再需要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