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