我通过阅读xml
以实用的方式在android中创建了控件例如
CheckBox checkbox = new CheckBox(this);
checkbox.setText("Text");
我想在后期动态地获取控件中的值
View view = this.findViewById(resId);
bool checked = ((CheckBox)view).isChecked();
如何“实际”为实际创建的控件“resId”。
我尝试使用checkbox.getId()
,但它返回0
答案 0 :(得分:1)
您可以使用checkbox.setID(25)
设置自定义ID(例如),您需要提供唯一ID。您可能遇到的问题是,与其他控件存在ID冲突(如果您还使用布局XML),因为ID会自动生成。
我建议您将checkbox
变量保留为您班级的成员,以便以后可以访问它。
答案 1 :(得分:1)
您最好保留对控件的引用,并使用它来设置值。
Map<String, CheckBox > checkBoxes = new HashMap<String, CheckBox >();
...
checkBoxes.put("checkBox1", new CheckBox(this));
...
CheckBox checkbox = checkBoxes.get("checkBox1");
但是如果你真的想要id,你可以通过setId
方法设置你的自定义id,如@Merlevede所建议,但让android生成id以避免冲突。创建一个xml资源项:
<item type="id" name="your_super_puper_id"/>
然后使用它:xxx.setId(R.id.your_super_puper_id)
要查找View
,您可以使用标记。使用setTag
方法,您可以将任何对象附加到视图,然后使用该对象通过findViewWithTag
方法查找视图。
String superPuperStringId = "checkBox1";
someView.setTag(superPuperStringId);
...
view = someViewGroup.findViewWithTag(superPuperStringId);
您也可以通过xml创建复选框并在那里指定ID。