最近在做一个项目涉及到很多自定义控件的东西,需要用代码动态添加控件到布局里面,然后我想给自定义控件在代码里面设置id的时候,Android studio报错了。在eclipse不会,什么鬼?
eclipse下的显示:
网络图片eclipse.pngAS下会报错:
AS.png在Android Studio中,用代码动态添加控件时,通过View.setId(int id)这个方法为控件添加id时直接赋值一个int类型的参数会“报错”。下面我们来解决它吧!
- 方案一:通过调用View.generateViewId()作为setId的参数,但此方案不是最佳方案,因为View.generateViewId()方法必须为SDK版本17及以上才行,否则报错。(但也有可以通过自写一个Utils.generateViewId()解决)
因为我的最低版本号是14,所以要添加:@TargeApi,不然会报错,个人建议放弃这种方法,因为还有更好的解决办法,请忽略我上面写的东西。。。。
方案二:在res/values/下添加setId.xml(名字可随意)文件,代码如下:
setId.png在代码中设置id如下:
方案二.png参考文章:http://www.tuicool.com/articles/ye26biF
网友评论