当前位置: 首页 > 面试题库 >

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

严修谨
2023-03-14
问题内容

我最近在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更高。



 类似资料:
  • 我为JavaFX TableColumn创建了一个扩展函数,使得在没有重复样板的情况下实现cellFactory更加简洁。扩展函数定义如下: 为了格式化TableCell,我只需要定义TableCell中应该发生什么。当当前单元格有非空项可用时更新项。例如,要格式化LocalDateTime,我现在可以编写: 然后我继续定义另一个扩展来执行此操作,因此我可以编写: 此函数使用第一个函数,如下所示:

  • 问题内容: 我不知道您是否认为这是一个重要问题,但我想知道。float是一个浮点数(4个字节)。double是浮点数(8个字节)。为什么我们定义双重假名铸造: 但是我们需要使用浮点数进行转换: 要么 先感谢您。 问题答案: 如果浮点文字以字母或结束,则其类型为float 。否则,其类型为,并且可以选择以字母或结尾。 浮点类型(和)也可以使用E或e(对于科学记数法),或(32位浮点文字)和或(64位

  • 我现在正在学习遗传和多态性,除此之外,我也理解它。为什么我需要投三个。setY()不应该已经可以访问它了,因为我正在创建一个从G类继承的H对象。 第8行是语法错误。

  • 问题内容: 我有。我想使用获得最大结果。这是我的代码: 这是我的: 现在我得到了。怎么了? 问题答案: 您的错误可能在以下行中: 其中query.list()返回BigInteger列表而不是Long列表。尝试将其更改为。

  • 我不是一个设计师,但当我得到这个项目,我不能打开特别的一些屏幕,我认为他们是屏幕,我们只重用一些布局已经创建。不管怎么说谁能帮帮我吗?@override public void onBindViewHolder(@nonnull final ProductsAdapter.ViewHolder holder,final int position){String imageUrl=ProductsL