Серия Kotlin была разработана с учетом того, что вы уже знакомы, по крайней мере, на уровне новичка.
Это четвертая веха на пути к нашей серии Kotlin. Перейдите к третьему , если вы еще не сделали этого .
На этом этапе мы просто будем следовать задачам программирования, разработанным для Курса по основам для разработчиков Android, Раздел 1 - Урок 2.
Как создать и начать деятельность?
- В основном, запуск других действий такой же, как в Java.
val intent = Intent(this, SecondActivity::class.java) val message = editText_main!!.text.toString() intent.putExtra(EXTRA_MESSAGE, message) startActivityForResult(intent, TEXT_REQUEST)
- Однако мы объявляем конечные статические переменные в Kotlin с помощью val, а не var.
private val LOG_TAG = MainActivity::class.java.simpleName
- Создание объекта Singleton в котлине с использованием объекта-компаньона
companion object { // Class name for Log tag private val LOG_TAG = FirstActivity::class.java.simpleName // Unique tag required for the intent extra val EXTRA_MESSAGE = "EXTRA_MESSAGE" // Unique tag for the intent reply val TEXT_REQUEST = 1 }
- Аксессор в Kotlin: у нас нет геттеров и сеттеров, поэтому мы получаем прямой доступ к переменным поля. Например, чтобы получить текст из editTextView.
val reply = editText_second.text.toString()
- Установка текста в EditText должна выполняться с помощью setText (). Похоже, когда Kotlin пытается сгенерировать синтетическое свойство для пары Java getter / setter, Kotlin сначала ищет геттер. Поскольку у геттера есть возможность редактирования, мы не можем напрямую использовать доступ к полю.
editText_second.setText(reply)
- Исходный код: Начало действия
- Исходный код: LifeCycle Activity
Как справиться с неявным намерением?
- Разрешение действия со скрытым умыслом. Мы можем получить прямой доступ к свойству packageManager без геттера.
// Find an activity to hand the intent and start that activity. if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } else { Log.d("ImplicitIntents", "Can't handle this intent!") }
- Исходный код: Неявные намерения
- Исходный код: Получатель неявных намерений
Пятая веха в этой серии.
5. Тестирование вашего приложения на Kotlin (скоро)
Ссылки:
- Использование Kotlin для разработки под Android ~ Kotlin.org
- Ресурсы для изучения Kotlin ~ developer.android
- Зачем переходить на Kotlin? ~ Средний блог
- Список библиотек Kotlin ~ Kotlin.org
- Видео лекций ~ youtube.com
- Как работает синтаксис доступа к свойствам Kotlin? stackoverflow.com