Android 的 XML 属性中的问号 (?)
Posted
技术标签:
【中文标题】Android 的 XML 属性中的问号 (?)【英文标题】:Question mark (?) in XML attributes for Android 【发布时间】:2011-02-13 14:28:54 【问题描述】:谁能解释一下android XML属性中问号的含义?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
【问题讨论】:
【参考方案1】:问号表示它是对当前应用主题中资源值的引用。请参阅linuxtopia Android Dev Guide 或android.com Dev Guide 了解更多信息。
\?
转义问号。
【讨论】:
我认为最好将您的第二个链接指向:developer.android.com/guide/topics/resources/… 开发指南文章已经改版,这是新的直接链接:developer.android.com/guide/topics/resources/… 我觉得这样说比较合适?用于“引用样式属性”而不是“引用当前应用主题中的资源值”。根据您提供的 android.com 开发指南链接。 我认为在考虑包含相同自定义资源属性的多个主题时最有意义。假设您有与电影相关的主题,例如 MyThemeTransformers 和 MyThemeHobbit,它们都有一个名为 movieIcon 的属性。在每个主题定义中,movieIcon 都指向一个@drawable 资源,比如机器人或霍比特人图像。您可以在主题生效的任何地方(例如在工具栏或对话框或任何类型的视图布局中)引用“?attr/movieIcon”,当您在主题之间切换时,它会自动指向正确的可绘制对象。我希望这会有所帮助。 @DevonBiere 它有帮助!如果您提交您的评论作为答案,那就太好了。【参考方案2】:那个?允许您引用样式属性,而不是特定的硬编码资源。有关详细信息,请参阅 Android 开发指南中的 "Referencing style attributes"。
那么,这实际上有什么用?在考虑包含相同的自定义资源属性的多个主题时,这是最有意义的。
假设您有电影相关的主题,例如 MyThemeTransformers 和 MyThemeHobbit,它们都有一个名为 movieIcon 的属性。在每个主题定义中,movieIcon 属性指向不同的@drawable 资源,比如robot.png 或hobbit.png。
您可以在主题有效的任何地方(例如在工具栏或对话框或任何类型的视图布局中)引用“?attr/movieIcon”,它会自动指向正确的可绘制对象当您在主题之间切换时。您不需要任何与主题相关的逻辑来使用不同的可绘制对象。您只需为每个主题定义 movieIcon 属性,其余的由 Android 框架处理。
【讨论】:
以上是关于Android 的 XML 属性中的问号 (?)的主要内容,如果未能解决你的问题,请参考以下文章