Повысьте свою производительность с помощью замечательных расширений Kotlin
Спасибо, что показали свою любовь к функциям расширения Kotlin в первой части. Я хотел бы поделиться дополнительными расширениями, которые помогут вам улучшить свой опыт программирования с Android и Kotlin. Если вы еще не читали ее, то можете ознакомиться с ней по ссылке ниже.
Предпосылка
Должен иметь базовые знания синтаксиса kotlin и android
Начать работу с новой главой…
Значение из EditText
Через свойство text EditText
вы можете быстро получить текст из EditText. Но это Editable
. Таким образом, мы должны преобразовывать его в строку каждый раз, чтобы получить точное значение из EditText. Но вот в чем загвоздка: вы можете легко получить значение из EditText, используя свойство расширения, указанное ниже.
Использование
val name = etName.value
Начать деятельность
Начать действие — это распространенный способ перехода к другому действию. Сначала вы должны решить цель целевой деятельности. Однако, используя эту функцию расширения, вы можете исключить часть создания намерения.
Вы также можете настроить намерение передавать некоторые данные и другие вещи. Он также может убить текущую активность вызова, если хотите. Посмотрите на примеры ниже.
Использование
startActivity(MainActivity::class.java) // Without Intent modification startActivity(MainActivity::class.java) { // You can access the intent object in this block putExtra("key", "value") }
Проверить сеть
В настоящее время все наши приложения имеют подключение к Интернету в соответствии с нашими требованиями, функциями и функциональностью. Таким образом, вам, возможно, придется проверить, доступно ли подключение к Интернету или нет.
Таким образом, эта функция расширения полезна для проверки интернет-соединения в активности и фрагменте. Его легко использовать в операторе if и других местах внутри области видимости.
Использование
if (isNetworkAvailable()) { // Called when network is available } else { // Called when network not available }
Проверить разрешение
Чтобы выполнить наши варианты использования, иногда вам может потребоваться играть с любым разрешением. Таким образом, нам, возможно, придется проверить, предоставлено ли разрешение для нашего приложения. Поэтому приведенная ниже функция расширения полезна для определения того, было ли предоставлено разрешение.
Использование
if (isPermissionGranted(Manifest.permission.ACCESS_FINE_LOCATION)) { // Block runs if permission is granted } else { // Ask for permission }
Удалить пробелы
Иногда у нас могут быть нереалистичные текстовые данные из Rest API или другого источника данных. Итак, если у вас есть более одного пробела и вы хотите его удалить, мы можем использовать removeDuplicateWhitespaces()
или, если вы хотите полностью удалить его, вы можете использовать функции removeAllWhitespaces()
extension.
Использование
"Hello, world!!!".removeAllWhitespaces() // Output: Hello,world!!! "Hello, world!!!".removeDuplicateWhitespaces() // Output: Hello, world!!!
toEditable()
Редактируемый — это интерфейс для текста, содержимое и разметка которого могут быть изменены. Если вы хотите преобразовать строку в редактируемую, вам придется иметь дело с редактируемым экземпляром фабрики.
Теперь, используя приведенную ниже функцию, вы можете легко удалить шаблонный код. Вы можете использовать toEditable() в любой строковой функции. И вы можете использовать его для назначения текста в поле EditText.
Использование
etName.text = "First name".toEditable()
Размер экрана
Работа с размером экрана устройства может потребоваться, если вы имеете дело с макетом динамического представления, основанным на некотором состоянии или данных. Следовательно, это свойство расширения будет использоваться для этого. Это даст высоту и ширину устройства. Вы можете использовать его в области действия или использовать объекты контекста в других местах.
Использование
val size = screenSize val deviceHeight = size.height val deviceWidth = size.width
Менеджеры системных служб
Эти свойства используются для прямого доступа к системному менеджеру без создания его объекта. Вы можете использовать его непосредственно в действии, а для фрагмента вы должны использовать контекст. Обратите внимание, что перечисленные ниже свойства не являются всеми из них. Но если нужно больше, можно добавить больше.
Использование
val manager = downloadManager // In Activity val manager = requireContext().downloadManager// In Fragment
Скопировать в буфер обмена
Иногда вам может понадобиться скопировать текст в буфер обмена, чтобы пользователь мог поделиться текстом с другими приложениями. В результате вы можете использовать свойство расширения, указанное ниже, для строкового объекта, и все будет хорошо.
Использование
"This is clipboard".copyToClipboard(context)
Логические выражения
Boolean, это насущная потребность каждого программиста. Вы должны работать с логическими значениями каждый божий день в своей жизни программиста. В kotlin вам, возможно, придется иметь дело с нулевым значением и логическим значением вместе, в этом случае вы можете использовать эти расширения. Здесь мы также использовали концепцию контракта для достижения умного приведения.
Использование
lateinit var any: Boolean? // Assume that, this property is already assigned if (any.isTrue()) { // Run when any is true only } if (any.isFalse()) { // Run when any is false only } val any1: Boolean = any.orTrue // If any is null then any1 = true otherwise any1 = any val any2: Boolean = any.orFalse // If any is null then any1 = false otherwise any1 = any
Заключение
В этом сообщении блога мы рассмотрели функции расширения Kotlin для разработчиков Android. Эти расширения могут упростить общие задачи, такие как работа со строками, обработка дат и времени, управление сетями и многое другое. Они могут сэкономить время и усилия, уменьшить количество ошибок и повысить общее качество вашего кода.
Спасибо, что нашли время, чтобы прочитать его. 👏 За эту статью можно поставить аплодисменты до 50 хлопков.
Вы можете связаться со мной 😊 в Twitter, LinkedIn или GitHub.
Я что-то забыл? 🤔 Пожалуйста, прокомментируйте ниже.