Захват контекста приложения в android/kotlin

Иногда в пользовательском классе требуется получить доступ к контексту приложения.

Можно использовать метод внедрения зависимостей, но именно для этой задачи мне нравится подход с использованием статического хранилища.

Идея заключается в том, чтобы расширить класс android.app.Application статическим полем context, куда мы будем сохранять ссылку на Application при создании экземпляра класса.

Чтобы эта конструкция заработала, необходимо указать явно имя нового класса в манифесте (AndroidManifest.xml).

В секцию application добавим свойство android:name

С этого момента вы можете получить контекст приложения в любом месте/классе вашего приложения. Например, чтобы вывести сообщение через Toast :

Мало букафф? Читайте есчо !

Как получить строку из R.string по имени

Ноябрь 30, 2022 г.

В общем случае, когда вы находитесь в контексте Activity, это выглядит так: [crayon-6ad372b33b29f054333527/] При этом вызов getResources() в этом контексте и необязателен, т.е. работает и так: [crayon-6ad372b33b2a9292106162/] Если вы находитесь ...

Читать

Как в Kotlin отключить upper case у компонента Button

Март 20, 2023 г.

Компонент Button использует material дизайн и имеет некоторые предопределенные стили, которые иногда хочется изменить. Мне чаще всего требуется убрать UPPERCASE с текста кнопки. На старте шаблон компонента выглядит вот так: [crayon-6ad372b33b40d045753739/] ...

Читать

Конструирование визуальных компонентов в kotlin

Март 11, 2023 г.

Android studio предоставляет набор стандартных компонентов, таких как TextView, LinearLayout и пр. Но довольно часто приходится оперировать группами таких ...

Читать

Сохранение файла в Downloads Android

Ноябрь 5, 2022 г.

Задача - создать файл в каталоге Downloads из вашего приложения на платформе Android. Пусть это будет какой то текстовый файл, который наше приложение умеет генерировать. Формат файла - XML. Наша задача решается по-разному для андроидов 10+ ...

Читать
 

Комментарии к «Захват контекста приложения в android/kotlin»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: