getResources ().getColor () jest przestarzałe [duplikat]
To pytanie ma już odpowiedź tutaj:
- Nie jest to jednak żaden problem, ponieważ nie jest on w pełni funkcjonalny.]} 17 odpowiedzi
Za pomocą:
buildToolsVersion "22.0.1"
,
W moim pliku gradle.
Odkryłem, że użyteczne {[2] } jest przestarzałe.
Czego powinienem użyć zamiast tego?
4 answers
Wygląda na to, że najlepszym podejściem jest użycie:
ContextCompat.getColor(context, R.color.color_name)
Wybierze odpowiednio metodę Marshmallow z dwoma parametrami lub metodę pre-Marshmallow.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-25 11:00:03
Cóż, jest przestarzały w Androidzie m, więc musisz zrobić wyjątek dla Androida m i niższych. Wystarczy dodać aktualny temat w funkcji getColor
. Aktualny temat możesz pobrać za pomocą getTheme()
.
To załatwi sprawę w fragmencie, możesz zastąpić getActivity()
getBaseContext()
, yourContext
, etc, które przechowują Twój aktualny kontekst
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white, getActivity().getTheme()));
}else {
yourTitle.setTextColor(getActivity().getResources().getColor(android.R.color.white));
}
*p. s : kolor jest przestarzały w M, ale drawable jest przestarzały w L
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-05 18:04:04
Musisz użyć ContextCompat.getColor (), która jest częścią biblioteki Support V4 (więc będzie działać dla wszystkich poprzednich API).
ContextCompat.getColor(context, R.color.my_color)
Jak określono w dokumentacji, "począwszy od M, zwracany kolor będzie stylizowany dla określonego motywu kontekstu". Więc nie musisz się o to martwić.
Możesz dodać bibliotekę Support V4, dodając następujące elementy do tablicy zależności wewnątrz kompilacji aplikacji."gradle": {]}
compile 'com.android.support:support-v4:23.0.1'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 07:53:02
Znalazłem, że przydatne getResources ().getColor (R. color.color_name) jest przestarzały.
Nie jest przestarzały w API na poziomie 21, zgodnie z dokumentacją.
To jest przestarzałe w M Developer Preview. Jednak metoda zastępcza (dwuetapowy getColor()
, który pobiera identyfikator zasobu koloru i obiekt Resources.Theme
) jest dostępna tylko w M Developer Preview.
Stąd teraz kontynuuj używanie metody single-parameter getColor()
. Jeszcze w tym roku rozważ użycie metody dwu-parametrowej getColor()
na urządzeniach z Androidem M, wracając do przestarzałej metody jednoparametrowej getColor()
Na starszych urządzeniach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-05 21:21:42