2014-07-03 4 views
0

Например, у меня есть некоторое число, например:Android, как конвертируется идентификатор ресурса?

Strig num = resources.getResourceName(2130903218); 

и я вернусь:

Unable to find resource ID #0x7f0300b2 

, как я получаю от 2130903218 -> #0x7f0300b2. Какой формат? Могу ли я получить от #0x7f0300b2 -> 2130903218

Я пишу несколько документов, и мне нужно знать, как это преобразуется.

+1

Ум, зачем бы вы * когда-либо * имели 'resources.getResourceName (2130903218)'? – CommonsWare

ответ

1

Ничего особенного, когда исключение идентификатора является печать в виде шестигранной строки

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.toHexString (grep code)

1

0x7f0300b2 = 2130903218, getResourceName возвратит имя ресурсов. например:

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

и resources.getResourceName(R.string.hello_world) будет возвращать одну строку вида «пакета: строка/hello_world» .Вы должны увидеть reference doc.

Смежные вопросы