#android
Есть к примеру вот такая строка tabLayout.getTabAt(tabLayout.getTabCount() - 1) .setIcon(getResources().getDrawable(R.drawable.icon_contacts)); В студии это выглядит так: Вопрос: чем заменять такие методы, и где можно найти актуальные методы которые могут заменить функционал deprecated-метода.
Ответы
Ответ 1
Найти актуальные методы всегда можно в документации. Конкретно по getDrawable: http://developer.android.com/intl/ru/reference/android/content/res/Resources.html#getDrawable(int) deprecated с API 22. Указывают, что заменить можно на Context.getDrawable(int) или getDrawable(int, Theme), передав тему. Либо использовать библиотеки совместимости, тогда так: ContextCompat.getDrawable(context, R.drawable.***), тогда не нужны проверки.Ответ 2
Не забудьте добавить проверку на доступность данного метода в новом API. Например, если новый метод есть только в API 21, то на старых версиях ОС у вас будут ошибки и нужно добавить проверку вида: if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP ) { //используем новый метод } else { //используем старый deprecated метод }Ответ 3
Идёте на Android developers в поиске вбиваете свой класс, у которого метод устарел, не забудьте предворительно указать версию API в списке пакетов, далее находите описание класса с его полями, методами и т.д., далее ищите свой метод в списке, в описании метода всегда написано, если он устарел, что лучше использовать вместо него, это касается не только методов, но и в целом любых deprecated. На живом примере, переходите по ссылке: http://developer.android.com/intl/ru/reference/android/app/Activity.html#dismissDialog(int) Там в описании чётко написано, что делать.
Комментариев нет:
Отправить комментарий