我在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
支持的int值(例如R.styleable.StarWars_sw_jedi
)但是如何获取属性name
(jedi
)?
编辑更具体:
我希望属性的“name”字符串不是R中的值(这是一个int):
例如,我想检索“jedi”而不是int(R.styleable.StarWars_sw_jedi
或R.attr.sw_jedi
)
实际上我想要getAttributeName(R.styleable.StarWars_sw_jedi)
答案 0 :(得分:1)
我已经使用了相同的样式并且正在完美地检查一次以供参考。
第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>
声明您在res/values/strings.xml
<string name="sw_jedi">Hi</string>
<string name="sw_rank">Bye</string>
当我在我的java代码中使用时
它没有任何歧义。
如果你想获得jedi的价值就像这样
String jedi=getResources().getResourceEntryName(StarWars_sw_jedi);
答案 1 :(得分:1)
嗯,我不知道为什么我没找到它,但我正在寻找的功能是getResourceEntryName,它实际上正是我想要的
在我的情况下,如果我想要“绝地”,我会这样做:
String name = getResources().getResourceEntryName(R.attr.sw_jedi);