findViewById类型转换异常Casting

升级Android studio为最新版3.0后,在项目初始化控件使用findViewById时,

出现下面代码中的情况 : tv = findViewById(R.id.textView);   此时as没有提示代码错误;

按照经常写代码的习惯,都会写为tv = (TextView)findViewById(R.id.textView); 

此时将此行代码改为: tv = (TextView)findViewById(R.id.textView); 


as提示  Casting  ' findViewById(R.id.textView) ' to TextView is redundant


问题出现原因:

build.gradle(Module:app) 文件中,compileSdkVersion 26 , 问题就出在这里;


查找资料后才知道, android 从 API 26 之后,使用findViewById 可以直接写为 tv = findViewById(R.id.textView) ;

将 build.gradle(Module:app) ---》 compileSdkVersion 从26改为25;(为什么要改为25,因为25之前不会出现此情况,改为小于等于25的数字都可以)

点击 Sync Now后 ,再去看原来书写的代码,就会变成大家熟悉的

 tv = (TextView)findViewById(R.id.textView)。此时此行代码下方有条红线,直接Alt + Enter会提示:Cast to 'android.widget.TextView', 导入TextView即可。



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值