首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从attrs.xml获取自定义属性的名称

从attrs.xml获取自定义属性的名称
EN

Stack Overflow用户
提问于 2013-02-21 23:02:43
回答 2查看 2.8K关注 0票数 1

我已经在attrs.xml中创建了自定义属性:

代码语言:javascript
复制
<?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值,但是如何获得属性name (jedi)呢?

编辑得更具体一些:

我想要属性的"name“字符串,而不是来自R的值(它是一个int):

例如,我想检索"jedi“而不是int (R.styleable.StarWars_sw_jediR.attr.sw_jedi)

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

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-21 23:50:31

我不知道为什么我没有找到它,但是我正在寻找的函数是getResourceEntryName,它实际上做的正是我想要的

对我来说,如果我想要“绝地武士”,我会这么做:

代码语言:javascript
复制
String name = getResources().getResourceEntryName(R.attr.sw_jedi);
票数 1
EN

Stack Overflow用户

发布于 2013-02-21 23:44:32

步骤1:

通过在res/ attrs.xml文件夹中创建文件值来创建自定义样式

这是attrs.xml

代码语言:javascript
复制
<?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中指定的格式

代码语言:javascript
复制
   <string name="sw_jedi">Hi</string>
        <string name="sw_rank">Bye</string>

当我在java代码中使用

它的工作没有任何歧义。

如果你想得到绝地武士的价值,就这样做

代码语言:javascript
复制
 String jedi=getResources().getResourceEntryName(StarWars_sw_jedi);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15005461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档