java - 如何在字符 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 字符串?
十分感谢!
解决方案
我相信您真正需要的是在资源中预先声明但未分配给布局中的任何视图的 id。如果你想这样做,你可以创建 id 资源,即ids.xml
在values
资源目录中。该文件中的 id 应声明如下:
<resources>
<item name="btn0" type="id"/>
<item name="open_url" type="id"/>
...
</resources>
之后,您将能够从生成的 R 类 ( R.id.btn0
) 中正常使用这些 id。我唯一不明白的是,如果您已经引用了以编程方式创建的视图,为什么还需要搜索它。
推荐阅读
- c++ - 用数组在 sfml 中定义圆形
- django - Django-compressor:使用离线压缩模式启用 BrotliCompressorFileStorage
- java - jdk8中的字符串#intern()
- formula - 将单元格与一系列单元格对进行比较
- angular - 离子 - 按钮未显示在输入旁边
- jsf - 如何更改 primefaces databtable 排序图标
- javascript - Normalizr:如何提取值并直接给它对象?如何将对象减少为其键的值?
- c# - asp net Core 获取用户Windows用户名
- node.js - 在浏览器中显示来自 S3 的图像流
- c++ - 将双精度数组转换为仅具有双精度成员而不复制数据的结构数组