Java 在android中运行时抓取复选框名称

Java 在android中运行时抓取复选框名称,java,android,android-checkbox,Java,Android,Android Checkbox,点击一个按钮,我就在一个复选框列表中循环。我想做的是在运行时抓取复选框的名称,去掉名称中指定的整数值。我不想获取值或id。因此在strings.xml文件中,疼痛评估。,我试图在运行时获取checkList1。我可以毫无问题地得到这篇课文。目前,我正在使用下面的代码遍历视图元素: RelativeLayout root = (RelativeLayout)findViewById(R.id.Root); for (int i = 0; i < root.getCh

点击一个按钮,我就在一个复选框列表中循环。我想做的是在运行时抓取复选框的名称,去掉名称中指定的整数值。我不想获取值或id。因此在strings.xml文件中,
疼痛评估。
,我试图在运行时获取checkList1。我可以毫无问题地得到这篇课文。目前,我正在使用下面的代码遍历视图元素:

RelativeLayout root = (RelativeLayout)findViewById(R.id.Root);

            for (int i = 0; i < root.getChildCount(); i++)
            {
                View v1 = root.getChildAt(i);
                Class c = v1.getClass();

                if (c == CheckBox.class)
                {
                    CheckBox thisBox = (CheckBox)v1;

                    if (thisBox.isChecked())
                    {
                        String text = (String)thisBox.ge;

                        DoDailyCheckListUpdate(thisBox.isChecked(),checkBoxCount);
                        countItemsFinished++;
                    }

                    checkBoxCount++;
                }
            }
RelativeLayout root=(RelativeLayout)findViewById(R.id.root);
for(int i=0;i
我要找的是以某种方式获得复选框的名称。因此,当它循环通过并点击疼痛评估复选框时,我希望能够拉出检查列表1。不必根据我找到的文本翻阅strings.xml文件来获取名称,我希望可能有一个更简单的解决方案,我可能忽略了它


提前感谢。

复选框
扩展自
文本视图
,因此从中检索文本非常简单:

String text = thisBox.getText().toString();

如果要检索字符串的键名。我建议您将其放入对象的标签中:

thisBox.setTag(getResources().getResourceEntryName(R.string. checkList1);
这样检索它:

String text = (String)thisBox.getTag();

这应该可以做到。

您可以在复选框中添加一个标记,然后从标记中获取复选框的名称??设置标记可以工作,但我必须在设置的标记中硬编码名称。我试图避免做任何类型的硬编码,因为它似乎偏离了标准。如果这是唯一最好的选择,那么我必须采用这种方法。您可以在启动时使用XML解析器来读取strings.XML文件,并构建值/名称的hashmap。这将是一个在hashmap上调用.get()的简单例子。我使用了Andros的答案,我相信这就是未知的指向。虽然如果我没有来问这个问题,我可能会倾向于使用xml解析器的方法,但是,正如我在下面提到的,我最终会在页面上动态创建复选框。因为目前只有更新是动态的。因此,转换为动态复选框创建可能会给公认的方法带来麻烦,因为我无法指定硬编码的值。我们拭目以待。这就是“疼痛评估”。我希望从strings.xml文件中获取实际名称,而不是值。是的,这就做到了。那些小小的getResources()和其他我仍在了解的东西。谢谢你提供的信息。这确实节省了时间,尤其是自从我凌晨1:23醒来,现在是凌晨4:03,我一直在忙着一个小项目,我的大脑并没有完全充满热情。我使用的是巡航控制系统,我运行了它,它按预期工作。再次感谢你。我有动态更新部分,但没有复选框的初始设置,我希望在另一个版本中这样做。这可能会给组合带来麻烦,因为我无法硬编码checkList1值。