誰でもAndroid XML属性で疑問符の意味を説明できますか?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
疑問符は、現在適用されているテーマのリソース値への参照であることを意味します。 linuxtopia Android Dev Guide または Android.com Dev Guide を参照してください。
\?
は疑問符をエスケープします。
?特定のハードコーディングされたリソースではなく、スタイルattributeを参照できます。詳細については、Android Dev Guideの "Referencing style attributes" を参照してください。
だから、これは実際にどのように便利ですか? 同じカスタムリソース属性を含む複数のテーマを検討する際に最も意味があります。
MyThemeTransformersやMyThemeHobbitなどの映画関連のテーマがあり、両方ともmovieIconという属性があるとします。そして、そのmovieIcon属性は、各テーマ定義の異なる@drawableリソース、たとえばrobot.pngまたはhobbit.pngを指します。
テーマが有効な場所であればどこでも(?attr/movieIcon)を参照できます(ツールバーやダイアログ、またはあらゆる種類のビューレイアウトなど)。テーマを切り替えるときに正しいドローアブル。さまざまなドロウアブルを使用するためにテーマ依存のロジックは必要ありません。各テーマのmovieIcon属性を定義するだけで、Androidフレームワークが残りを処理します。