首页 > 解决方案 > 如何在字符 ASCII 字符串中以数字形式转换 java id?

问题描述

我以编程方式编写了一些 TextView,我想为它们提供 id。在 xml 文件中,我会执行以下操作:

android:id="@+id/btn0"

但在 .java 文件中,我只能将 id 设置为数字:

t1.setId(3);

是否有可能将“btn0”转换为数字,然后使用字符串“btn0”作为参数来使用 findbyid() 函数?

PS 我尝试记录 R.id.btn0 的值,我得到一个数字:2131361887

Log.d("aaa", Integer.toString(R.id.btn0));

是否有可能将此数字转换回 ASCII 字符串?

十分感谢!

标签: javaandroidxmlstring

解决方案


我相信您真正需要的是在资源中预先声明但未分配给布局中的任何视图的 id。如果你想这样做,你可以创建 id 资源,即ids.xmlvalues资源目录中。该文件中的 id 应声明如下:

<resources>
    <item name="btn0" type="id"/>
    <item name="open_url" type="id"/>
    ...
</resources>

之后,您将能够从生成的 R 类 ( R.id.btn0) 中正常使用这些 id。我唯一不明白的是,如果您已经引用了以编程方式创建的视图,为什么还需要搜索它。


推荐阅读