Odpowiedzi:
Znak zapytania oznacza, że jest to odniesienie do wartości zasobu w aktualnie stosowanym motywie. Więcej informacji na ten temat można znaleźć w przewodniku dla programistów linuxtopia dla systemu Android lub w przewodniku dla programistów android.com .
\?
ucieka ze znaku zapytania.
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ą.