gpt4 book ai didi

android - 为 Android 中以编程方式创建的控件获取 ResourceId

转载 作者:行者123 更新时间:2023-11-29 21:14:18 27 4
gpt4 key购买 nike

我通过读取 xml 在 android 中实用地创建了控件

例如

CheckBox checkbox = new CheckBox(this);
checkbox.setText("Text");

我想在稍后阶段动态地获取控件中的值

View view = this.findViewById(resId);
bool checked = ((CheckBox)view).isChecked();

如何为实用创建的控件“resId”。我尝试使用 checkbox.getId() 但它返回 0

最佳答案

您最好保持对控件的引用并使用它来设置值。

   Map<String, CheckBox > checkBoxes = new HashMap<String, CheckBox >();
...
checkBoxes.put("checkBox1", new CheckBox(this));
...
CheckBox checkbox = checkBoxes.get("checkBox1");

但是如果你真的想要 id,你可以按照@Merlevede 的建议通过 setId 方法设置你的自定义 id,但是让 android 生成 id 以避免冲突。创建一个 xml 资源项:

   <item type="id" name="your_super_puper_id"/>

然后使用它:xxx.setId(R.id.your_super_puper_id)

要查找 View,您可以使用标记。使用 setTag 方法,您可以将任何对象附加到 View ,然后使用该对象通过 findViewWithTag 方法查找 View 。

   String superPuperStringId = "checkBox1";
someView.setTag(superPuperStringId);
...
view = someViewGroup.findViewWithTag(superPuperStringId);

你也可以通过 xml 创建你的复选框并在那里分配 id。

关于android - 为 Android 中以编程方式创建的控件获取 ResourceId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21845312/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com