Quelqu'un peut-il expliquer le point d'interrogation signifie dans Android attributs XML?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
Le point d'interrogation signifie qu'il s'agit d'une référence à une valeur de ressource dans le thème actuellement appliqué. Voir linuxtopia Android ou Guide de développement Android.com pour en savoir plus).
\?
échappe au point d'interrogation.
Le ? vous permet de faire référence à un style attribut au lieu d'une ressource codée en dur. Voir "Référencement des attributs de style" dans le Android Dev Guide pour plus de détails.
Alors, comment est-ce réellement utile? Cela a plus de sens lorsque l'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 comme 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 vous référer à "? Attr/movieIcon " partout où le thème est en vigueur (comme dans une barre d'outils ou une boîte de dialogue ou tout autre type de disposition d'affichage), et il pointera automatiquement vers le dessin approprié lorsque vous basculerez entre les thèmes. Vous n'avez pas besoin de 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 cadre Android s'occupe du reste).