Quelqu'un peut-il expliquer la signification du point d'interrogation dans les attributs XML Android?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
android
xml
android-styles
Casebash
la source
la source
Le ? vous permet de faire référence à un attribut de style au lieu d'un ressource codée en dur . Voir «Référencement des attributs de style» dans le Guide de développement Android pour plus de détails.
Alors, comment est-ce vraiment utile? Cela a le plus de sens quand on considère plusieurs thèmes contenant le même attribut de ressource personnalisé .
Supposons que vous ayez des thèmes liés aux films tels que MyThemeTransformers et MyThemeHobbit, et que les deux aient un attribut appelé movieIcon . Et cet attribut movieIcon pointe vers une ressource @drawable différente, par exemple robot.png ou hobbit.png, dans chaque définition de thème.
Vous pouvez faire référence à " ? Attr / movieIcon " partout où le thème est en vigueur (comme dans une barre d'outils ou une boîte de dialogue ou n'importe quel type de disposition de vue), et il pointera automatiquement vers le dessinable correct lorsque vous basculerez entre les thèmes. Vous n'avez besoin d'aucune logique dépendante du thème pour utiliser les différents drawables. Vous définissez simplement l'attribut movieIcon pour chaque thème et le framework Android s'occupe du reste.
la source