Android 从attrs.xml获取自定义属性的名称
我在Android 从attrs.xml获取自定义属性的名称,android,xml,Android,Xml,我在attrs.xml中创建了自定义属性: <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="StarWars"> <attr name="sw_jedi" format="string" /> <attr name="sw_rank" format="string" /> </declare-styleable>
attrs.xml
中创建了自定义属性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
<attr name="sw_jedi" format="string" />
<attr name="sw_rank" format="string" />
</declare-styleable>
我在R
(例如R.styleable.StarWars\u sw\u jedi
)中获取int值,但是如何获取属性name
(jedi
)
编辑以使其更具体:
我想要属性的“name”字符串,而不是R中的值(它是int):
例如,我想检索“绝地”,而不是整数(R.styleable.StarWars\u sw\u jedi
或R.attr.sw\u jedi
)
事实上,我想要一个getAttributeName(R.styleable.StarWars\u sw\u jedi)
提前谢谢 我也用过你同样的风格,现在工作得很好,请检查一下以供参考 步骤1: 通过在res/values文件夹中创建文件attrs.xml来创建自定义样式 下面是attrs.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="StarWars">
<attr name="sw_jedi" format="string" />
<attr name="sw_rank" format="string" />
</declare-styleable>
</resources>
当我在java代码中使用
它毫无歧义地工作
如果你想得到绝地武士的价值,就这样做吧
String jedi=getResources().getResourceEntryName(StarWars_sw_jedi);
我不知道为什么我没有找到它,但是我要找的函数实际上就是我想要的 就我而言,如果我想要“绝地武士”,我会:
String name = getResources().getResourceEntryName(R.attr.sw_jedi);
R.attr.jedi不起作用?你用正确的方式调用它…清理项目一次..我不想得到int,但是名称字符串,我编辑了OP以更具体一些,它误解了sorryOki我找到了它,我想我昨天太累了:我要找的函数是getResourceEntryName()是的,我知道,我只是在找getResourceEntryName()函数:我太累了,我想:SY你编辑的代码不起作用,R.styleable.StarWars_sw_绝地返回sw_绝地在StarWars中的位置(即int[])所以0,请看我在NP Pragnani上面的答案,我在这里也做了一个,没有找到这个函数:)我对你在这里花费的时间投了更高的票,祝您今天过得愉快!
String name = getResources().getResourceEntryName(R.attr.sw_jedi);