Android以编程方式添加字符串ID

时间:2015-08-11 09:52:51

标签: android checkbox

我需要以编程方式将ID添加到新复选框。

我试过了:checkBox.setId("black_eyes");

但是我收到了int错误。

然后我尝试了:checkBox.setId(Integer.parseInt("black_eyes"));

这里我收到字符串为int error

我必须使用从API收到的复选框填充LinearLayout,我需要以编程方式显示它。我需要在它们上设置字符串ID。

如果不可能,那么如何将新字符串添加到资源文件(string.xml)?

2 个答案:

答案 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()+",");
    }
}

希望它会帮助别人!