View.setId在Android studio下使用报错的解决办法

最近在做一个项目涉及到很多自定义控件的东西,需要用代码动态添加控件到布局里面,然后我想给自定义控件在代码里面设置id的时候,Android studio报错了。在eclipse不会,什么鬼?

eclipse下的显示:

网络图片eclipse.png

AS下会报错:

View.setId在Android studio下使用报错的解决办法_第1张图片
AS.png

在Android Studio中,用代码动态添加控件时,通过View.setId(int id)这个方法为控件添加id时直接赋值一个int类型的参数会“报错”。下面我们来解决它吧!

  • 方案一:通过调用View.generateViewId()作为setId的参数,但此方案不是最佳方案,因为View.generateViewId()方法必须为SDK版本17及以上才行,否则报错。(但也有可以通过自写一个Utils.generateViewId()解决)
View.setId在Android studio下使用报错的解决办法_第2张图片
方案一.png

因为我的最低版本号是14,所以要添加:@TargeApi,不然会报错,个人建议放弃这种方法,因为还有更好的解决办法,请忽略我上面写的东西。。。。

方案二:在res/values/下添加setId.xml(名字可随意)文件,代码如下:

View.setId在Android studio下使用报错的解决办法_第3张图片
setId.png

在代码中设置id如下:

View.setId在Android studio下使用报错的解决办法_第4张图片
方案二.png

参考文章: http://www.tuicool.com/articles/ye26biF

你可能感兴趣的:(View.setId在Android studio下使用报错的解决办法)