1

我在以下位置创建了自定义属性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_sw_jedi)支持的 int 值,但是我怎样才能得到属性namejedi)?

编辑更具体:

我想要属性的“名称”字符串而不是 R 中的值(它是一个 int):

例如,我想检索“绝地”而不是 int ( R.styleable.StarWars_sw_jedior R.attr.sw_jedi)

事实上我想要一个getAttributeName(R.styleable.StarWars_sw_jedi)

提前谢谢!

4

2 回答 2

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代码中使用

它的工作没有任何歧义。

如果您想获得绝地的价值,请这样做

 String jedi=getResources().getResourceEntryName(StarWars_sw_jedi);
于 2013-02-21T15:44:31.997 回答
1

好吧,我不知道为什么我没有找到它,但我正在寻找的功能是getResourceEntryName它实际上正是我想要的

就我而言,如果我想要“绝地”,我会这样做:

String name = getResources().getResourceEntryName(R.attr.sw_jedi);
于 2013-02-21T15:50:31.210 回答