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);