Android如何转换资源ID号?

时间:2014-07-03 18:24:06

标签: android

例如,我有一些数字:

Strig num = resources.getResourceName(2130903218);

我回来了:

Unable to find resource ID #0x7f0300b2

我是如何从2130903218 -> #0x7f0300b2获得的。那是哪种格式?我可以从#0x7f0300b2 -> 2130903218

获得

我正在写一些文档,我需要知道这是如何转换的。

2 个答案:

答案 0 :(得分:1)

没有什么特别的,当抛出异常时,ID打印为十六进制字符串

1013 public void More ...getValue(int id, TypedValue outValue, boolean resolveRefs)
1014            throws NotFoundException {
1015        boolean found = mAssets.getResourceValue(id, 0, outValue, resolveRefs);
1016        if (found) {
1017            return;
1018        }
1019        throw new NotFoundException("Resource ID #0x"
1020                                    + Integer.toHexString(id));
1021 }

只需使用Integer.toHexStringgrep code

即可

答案 1 :(得分:1)

0x7f0300b2 = 2130903218,getResourceName将返回资源名称。 e.g:

<resources>
<string name="hello_world">Hello world!</string></resources>

resources.getResourceName(R.string.hello_world)将返回单个字符串形式&#34; package:string / hello_world&#34;。您应该看到reference doc