问题
动态给view设置id的时候会遇到以下错误。
因为在sdk17(4.2.2)以上可以使用myView.setId(View.generateViewId())才行,为了兼容,里面的id必须使用静态int类型。
解决方案
1、sdk17(4.2.2以上)
//设置View.generateViewId()
simpleDraweeViewicon.setId(View.generateViewId());
2、写在配置xml文件里
ids.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="layoutadd" type="id"/>
</resources>
代码中设置
AppRelativelayout mRelative = new AppRelativelayout(mContext);
mRelative.setId(R.id.layoutadd);
3、使用注解帮你搞定
将你所想定义的id按照下例写在代码中:
@android.support.annotation.IdRes
int TAG1401 = 1000;
int TAG1402 = 1001;
int TAG1403 = 1002;
int TAG1404 = 1003;
int TAG1405 = 1004;
int TAG1406 = 1005;
int TAG1407 = 1006;
在想要设置id的地方直接设置:
AppRelativelayout mRelative = new AppRelativelayout(mContext);
mRelative.setId(TAG1401);`这里写代码片`
原文链接:这里写链接内容