Могу ли я написать sampleVideoView? = findViewById <VideoView> (R.id.videoView) в Котлине?

Следующий код из пробного проекта Kotlin, я думаю, что всегда могу написать sampleVideoView? = findViewById<VideoView>(R.id.videoView) sampleVideoView? = findViewById<VideoView>(R.id.videoView) , правильно?

И более

Код sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE)) эквивалентен if (sampleVideoView!=null){sampleVideoView.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))} , правильно?

  class MainActivity : AppCompatActivity(){ private var sampleVideoView: VideoView? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) sampleVideoView = findViewById<VideoView>(R.id.videoView) sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE)) ... 

sampleVideoView? = findViewById (R.id.videoView)

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

Код sampleVideoView? .setVideoURI (Uri.parse (HLS_STREAMING_SAMPLE)) эквивалентен if (sampleVideoView! = Null) {sampleVideoView.setVideoURI (Uri.parse (HLS_STREAMING_SAMPLE))}, правильно?

Правда. Но если у вас есть, например, val x = y?.getName() переменной val x = y?.getName() будет равно null или будет содержать имя y после этого. Это не просто «делать, только если != null », как может предложить ваш пример.

Вы можете вообще забыть метод findView и заменить его плагином расширения расширения kotlin

 apply plugin: 'kotlin-android-extensions' 

после этого вы можете написать:

yourVideoViewID.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))

Ниже приведен правильный синтаксис для присваивания значения, допускающего значение NULL, для переменной с нулевым значением. Вы не нуждаетесь в вопросительном знаке при назначении

  sampleVideoView = findViewById<VideoView>(R.id.videoView) 

Второе утверждение эквивалентно

Intereting Posts
Реализация интерфейса kotlin в java Kotlin: Эквивалент getClass () для KClass Android Studio не удалось с Kotlin Почему Котлин не выполняет автоматическое литье под давлением? «Нормальный» Котлин и Котлин для андроида отличаются? Как создать карту из списка с помощью внутреннего списка с помощью Kotlin Как переустановить уже запущенную службу поддержки музыкальных плееров Kotlin – Как реализовать ItemClickListener для RecyclerView «JSON от Klaxon's довольно печатает» " kotlin, вызывающий мутирующую функцию в делеризации класса «Ни одна из следующих функций не может быть вызвана с аргументами, предоставленными« с топливным HTTP-протоколом » Не удалось получить данные из базы данных sqlite В инъекции зависимостей Kodein, как вы можете вставлять экземпляры Kodein в экземпляры? Включить свойство, объявленное в теле класса данных в toString () в Котлине Как помещать выражение лямбда после параметров на mapTo вызвать юридический синтаксис?