您的位置:首页 > 移动开发 > Android开发

Android 动态设置View的id——setId

2017-02-15 16:51 1496 查看

问题

动态给自定义view设置id,有时候会报错,下面我将带头冲锋(德邦跑错场了。。。。)

AndroidStudio会报错:



因为在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);


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android sdk