Почему R.styleable не может быть решена, почему?
У меня есть файл resources.xml, расположенный под значениями directcotry/, Это
/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
, eclipse жалуется, что стиль не может быть разрешен или не является полем. Зачем? Почему я не могу получить доступ к этому ресурсу? (Я использую обновление Android версии 2.1).
Ответы
Ответ 1
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>
Ответ 2
В соответствии с Примечания к выпуску 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
Ответ 3
Что вам нужно сделать, это объявить свой стиль в attrs.xml, а не resources.xml. Затем вы сможете обратиться к нему из своего кода следующим образом:
R.styleable.TheMissingTabWidget