我需要以编程方式将ID添加到新复选框。
我试过了:checkBox.setId("black_eyes");
但是我收到了int错误。
然后我尝试了:checkBox.setId(Integer.parseInt("black_eyes"));
这里我收到字符串为int error
我必须使用从API收到的复选框填充LinearLayout,我需要以编程方式显示它。我需要在它们上设置字符串ID。
如果不可能,那么如何将新字符串添加到资源文件(string.xml)?
答案 0 :(得分:2)
使用5553
时收到错误,因为该方法需要PUB/SUB
,而您提供checkBox.setId("black_eyes");
。
使用int
时出现错误,因为此方法会尝试将String
解析为Integer.parseInt("black_eyes")
。例如,String
将返回int
(作为Integer.parseInt("5")
)。在您的情况下,5
无法解析为int
。
您可以使用black_eyed
类的int
方法。致电setTag
即可。然后,您可以使用View
检索复选框的标记。此方法返回checkBox.setTag("black_eyes")
,因此您添加以将其checkBox.getTag()
。
PS:您无法在运行时在string.xml中添加新字符串。
答案 1 :(得分:0)
我使用声音答案解决了我的问题。我会在这里介绍我如何管理它,也许有人会使用:
首先,我创建一个类型为Checkbox的ArrayList
private static List<CheckBox> eyes_views = new ArrayList<CheckBox>();
然后我以编程方式从api ws创建复选框:
CheckBox checkBox = (CheckBox) activitate.getLayoutInflater().inflate(R.layout.create_checkbox, null);
checkBox.setTag(ws_flag);
checkBox.setText(ws_name);
之后,我将新的复选框添加到布局中并存储在ArrayList:
中list_views.add(checkBox);
eyes_views.addView(checkBox);
最后,当我只为那些被检查的人搜索时:
for (CheckBox checkbox : eyes_views)
{
if (checkbox.isChecked())
{
eyes=eyes.concat(checkbox.getTag()+",");
}
}
希望它会帮助别人!