java setid,java-无法使用AndroidStudio以编程方式查看的setId

我想以编程方式将视图添加到父视图,我的视图是RadioButton.我还想为我在RadioGroup中添加的视图设置一个ID.但是当我这样做时,它在以下地方给了我一个错误:mRadioButton.setId(321);

Reports two types of problems:

Supplying the wrong type of resource identifier. For example, when calling Resources.getString(int id), you should be passing R.string.something, not R.drawable.something.

Passing the wrong constant to a method which expects one of a specific set of constants. For example, when calling View#setLayoutDirection, the parameter must be android.view.View.LAYOUT_DIRECTION_LTR or android.view.View.LAYOUT_DIRECTION_RTL.

我不知道为什么会给我这个错误.

我发现一种解决方案是创建扩展RadioButton的MyRadioButton类,然后在其中添加一个变量int MYID.然后为此视图添加getter和setter.

但这是一种解决方法,有人知道这个问题的解决方案吗?

谢谢!

编辑:

另一个解决方法是使用setTag()

(我将它用于水平视图,并动态添加了ImageView,这有助于我检测单击了哪个视图)

解决方法:

如果您仅支持API 17和更高版本,

ImageButton mImageButton = new ImageButton(this);

mImageButton.setId(View.generateViewId());

否则,对于低于17的api

>打开项目的res / values /文件夹

>创建一个名为ids.xml的xml文件

具有以下内容:

然后在您的代码中

ImageButton mImageButton = new ImageButton(this);

mImageButton.setId(R.id.imageButtonId1);

标签:android-studio,view,java,android

来源: https://codeday.me/bug/20191028/1955425.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值