Zdaję sobie sprawę, na Context.getTheme()
, to zazwyczaj nie działa dobrze, jeśli używamy Application
jako Context
Dlaczego getTheme nie działa dobrze na zgłoszeniu
MyApplication.singletonInstance().getTheme().resolveAttribute(R.attr.actionBarDeleteIcon, typedValue, true);
// typedValue.resourceId will be 0x0, which is invalid
Jednakże, jeśli mogę użyć Activity
jako kontekst, to działa dobrze
MyFragment.this.getActivity().getTheme().resolveAttribute(R.attr.actionBarDeleteIcon, typedValue, true);
// typedValue.resourceId is valid
Zastanawiam się, dlaczego nie możemy rozwiązać atrybut przez Application
?
W manifeście określone informacje na temat tematu znajdują się na poziomie Application
. Pomyślałem, że uzyskanie motywu z obiektu Application
ma sens.
<application
android:theme="..."