我想以编程方式将视图添加到父视图,我的视图是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