R.styleable не может быть решена, почему? - PullRequest
15 голосов
/ 13 июля 2011

У меня есть файл resources.xml , расположенный в директории values ​​/ , это

/ значения / resources.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <declare-styleable name="TheMissingTabWidget"> 
        <attr name="android:divider" /> 
    </declare-styleable> 
</resources>

В моем java-коде, когда я пытаюсь получить доступ к этому ресурсу с помощью R.styleable.TheMissingTabWidget, затмение жалуется, что стиль не может быть разрешен или не является полем . Зачем? Почему я не могу получить доступ к этому ресурсу? (Я использую Android 2.1-обновление).

Ответы [ 4 ]

17 голосов
/ 13 июля 2011

PLZ Make values/attrs.xml ресурсов, как это

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="**com.admob.android.ads.AdView**"><--- where u want to use
       <attr name="backgroundColor" format="color" />
       <attr name="TextColor" format="color" />
       <attr name="keywords" format="string" />
       <attr name="refreshInterval" format="integer" />
    </declare-styleable>
</resources>
15 голосов
/ 13 июля 2011

Согласно примечаниям к выпуску SDK ,

Класс android.R.styleable и его поля были удалены из общедоступного API, чтобы обеспечить лучшую совместимость приложений. Константы, объявленные в android.R.styleable, зависят от платформы и могут быть произвольно изменены в разных версиях, поэтому они не подходят для использования приложениями. Вы все еще можете получить доступ к настраиваемым атрибутам платформы из ваших ресурсов или кода Для этого объявите пользовательский элемент ресурса, используя файл res / values ​​/ R.attrs вашего проекта, а затем объявите атрибут внутри. Примеры см. В разделе «sdk» /samples/ApiDemos/res/values/attrs.xml. Для получения дополнительной информации о пользовательских ресурсах см. Пользовательские ресурсы макета . Обратите внимание, что документация android.R.styleable все еще предоставляется в SDK, но только в качестве ссылки на настраиваемые атрибуты платформы для различных элементов.

Посмотрите код ApiDemos и файл res / values ​​/ attrs.xml

0 голосов
/ 11 февраля 2019

Вы можете получить доступ к стилевому уровню вашего пакета, как этот

<yourpackagename>.R.styleable.name
0 голосов
/ 05 января 2016

Что вам нужно сделать, это объявить свой стиль в attrs.xml , а не resources.xml .Тогда вы сможете ссылаться на него из своего кода следующим образом:

R.styleable.TheMissingTabWidget
...