我可以写sampleVideoView吗? =在Kotlin中的findViewById (R.id.videoView)?

下面的代码是来自Kotlin示例项目,我想我总是可以写sampleVideoView? = findViewById(R.id.videoView) sampleVideoView? = findViewById(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(R.id.videoView) sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE)) ... 

3 Solutions collect form web for “我可以写sampleVideoView吗? =在Kotlin中的findViewById (R.id.videoView)?”

sampleVideoView? = findViewById(R.id.videoView)

这不是有效的语法。 这个? 用于将types标记为可为空,并安全地访问包含这些可空types的variables。

代码sampleVideoView?.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))与if(sampleVideoView!= null){sampleVideoView.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))}是等价的,对不对?

真正。 但是,如果你有例如val x = y?.getName()variablesx将为null或者包含y之后的名字。 这不仅仅是“如果!= null ”,你的例子可以建议。

你可以忘记findView方法,并用kotlin android扩展插件替换它

 apply plugin: 'kotlin-android-extensions' 

之后,你可以写:

yourVideoViewID.setVideoURI(Uri.parse(HLS_STREAMING_SAMPLE))

以下是将可为空的值赋给可为空的variables的正确语法。 在作业中不需要问号

  sampleVideoView = findViewById(R.id.videoView) 

第二个陈述是等价的

  • 当expression式中删除Kotlin的中断
  • 有没有办法来注释kotlin对象的INSTANCE字段?
  • 一旦分配了一个非null值,将a从var更改为val的属性?
  • Kotlin:超级构造函数中所做的更改被覆盖
  • Kotlin编程基础
  • Kotlin:获取具有标准function的文件扩展名
  • 创建不共享通用参数的多个Kotlin构造函数
  • 用Kotlin创建自定义匕首2范围
  • @Rule>在Kotlin Junit测试中必须是公共的ValidationError
  • 断言variables不是空的
  • 使用android从图像背景中检测颜色
  • Kotlin language will be the best programming language for Android.