Android中如何从XML文件获取CheckBox的ID并显示到页面?
解决Android CheckBox获取XML定义ID名称的问题
嗨,我来帮你搞定这个问题!你遇到的情况其实很常见——调用getId()得到的是Android系统在运行时给控件分配的整数型ID,而你XML里写的@+id/bi16160241是这个控件的资源名称,这俩本来就不是一回事儿。
要获取XML里定义的那个ID名称字符串并显示到页面上,你可以这么做:
核心思路
通过getResources().getResourceEntryName()方法,把getId()返回的整数值ID传进去,就能得到你在XML里定义的那个ID名称(也就是bi16160241)。
代码示例
Java版本
// 找到你的CheckBox控件 CheckBox checkBox = findViewById(R.id.bi16160241); // 获取系统分配的整数ID int intId = checkBox.getId(); // 转换成XML里的ID名称字符串 String idName = getResources().getResourceEntryName(intId); // 把ID名称显示到页面上(比如用TextView) TextView displayTv = findViewById(R.id.your_display_textview_id); displayTv.setText("CheckBox的ID名称:" + idName);
Kotlin版本
// 找到CheckBox控件 val checkBox = findViewById<CheckBox>(R.id.bi16160241) // 获取整数ID val intId = checkBox.id // 转换成ID名称字符串 val idName = resources.getResourceEntryName(intId) // 显示到TextView val displayTv = findViewById<TextView>(R.id.your_display_textview_id) displayTv.text = "CheckBox的ID名称:$idName"
注意事项
- 如果你是在自定义View里执行这段代码,记得用
getContext().getResources()来获取资源对象,而不是直接调用getResources()。 - 确保你已经在布局里添加了用来显示ID的TextView,并且正确设置了它的ID(比如上面代码里的
your_display_textview_id)。
内容的提问来源于stack exchange,提问作者ELVIN MALIH FKI
相关产品推荐
相关产品推荐

