31 votes

R.styleable ne peut pas être résolu, pourquoi ?

J'ai un ressources.xml fichier situé sous la direction valeurs/ C'est

/valeurs/ressources.xml

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

Dans mon code java, lorsque j'essaie d'accéder à cette ressource par R.styleable.TheMissingTabWidget , l'éclipse se plaint que styleable ne peut être résolu ou n'est pas un champ . Pourquoi ? Pourquoi je ne peux pas accéder à cette ressource ? (J'utilise Android 2.1-mise à jour).

23voto

Arun Points 235

S'il vous plaît faire values/attrs.xml des ressources comme celle-ci

<?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>

17voto

xevincent Points 1848

Selon le Notes de version du SDK ,

La classe Android.R.styleable et ses champs ont été supprimés de l'API publique, afin de mieux garantir la compatibilité avec les applications. Les constantes déclarées dans Android.R.styleable étaient spécifiques à la plate-forme et sujettes à des modifications arbitraires d'une version à l'autre, et ne pouvaient donc pas être utilisées par les applications. Vous pouvez toujours accéder aux attributs styleable de la plate-forme à partir de vos ressources ou de votre code. Pour ce faire, déclarez un élément de ressource personnalisé en utilisant un dans le fichier res/values/R.attrs de votre projet, puis déclarez l'attribut à l'intérieur. Pour des exemples, voir "sdk"/samples/ApiDemos/res/values/attrs.xml. Pour plus d'informations sur les ressources personnalisées, voir Ressources pour la mise en page personnalisée . Notez que la documentation Android.R.styleable est toujours fournie dans le SDK, mais uniquement comme référence des attributs styleables de la plate-forme pour les différents éléments.

Consultez le code ApiDemos et le fichier res/values/attrs.xml.

14voto

goatrance Points 1

Dans mon cas, j'avais fait par inadvertance import android.R au lieu de import com.<mypackage>.R .

Remplacer <mypackage> avec le nom de votre paquet (ou supprimez simplement l'importation actuelle et laissez Android Studio faire le reste).

5voto

Ishan Fernando Points 894

Vous pouvez accéder à votre stylet de niveau paquet comme ceci

<yourpackagename>.R.styleable.name

3voto

pzulw Points 427

J'avais une erreur de style indéfini dans Android Studio, mais j'ai remarqué que la construction était réussie. J'ai fait Invalider les caches et redémarrer et le problème a disparu.
(Il m'a fallu beaucoup trop de temps pour le comprendre).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X