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

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

eclipse下的显示:

网络图片eclipse.png

AS下会报错:

AS.png

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

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

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

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

setId.png

在代码中设置id如下:

方案二.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容