Czy ktoś może wyjaśnić znak zapytania oznacza w atrybutach XML Androida?
<TextView
style="?android:attr/windowTitleStyle"
More attributes
/>
android
xml
android-styles
Casebash
źródło
źródło
The? umożliwia odwoływanie się do atrybutu stylu zamiast do określonego zasobu zakodowanego na stałe . Aby uzyskać szczegółowe informacje, zobacz „Odwoływanie się do atrybutów stylu” w podręczniku programisty Androida.
Więc jak to jest naprawdę przydatne? Ma to największy sens w przypadku rozważania wielu motywów zawierających ten sam niestandardowy atrybut zasobów .
Załóżmy, że masz motywy związane z filmami, takie jak MyThemeTransformers i MyThemeHobbit, i oba mają atrybut o nazwie movieIcon . Ten atrybut movieIcon wskazuje na inny zasób @drawable, powiedzmy robot.png lub hobbit.png, w każdej definicji motywu.
Możesz odwołać się do „ ? Attr / movieIcon ” w każdym miejscu, w którym działa motyw (np. Na pasku narzędzi, w oknie dialogowym lub w jakimkolwiek układzie widoku), a po przełączeniu się między motywami automatycznie wskaże właściwy element do rysowania. Nie potrzebujesz żadnej logiki zależnej od motywu, aby używać różnych rysunków. Wystarczy zdefiniować atrybut movieIcon dla każdego motywu, a platforma Androida zajmie się resztą.
źródło