Java 在kotlin Android Studio中声明ImageView
我想做的是这样做(在Java中): 当我把它带给Kotlin时,我得到一个错误: 请告诉我要保留哪些选项以避免出现错误Java 在kotlin Android Studio中声明ImageView,java,android,kotlin,imageview,Java,Android,Kotlin,Imageview,我想做的是这样做(在Java中): 当我把它带给Kotlin时,我得到一个错误: 请告诉我要保留哪些选项以避免出现错误 什么类是TODO()?使用lateinit,这将允许您稍后初始化属性 lateinit var logo: ImageView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.act
什么类是
TODO()
?使用lateinit
,这将允许您稍后初始化属性
lateinit var logo: ImageView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
logo = findViewById(R.id.logo)
}
如果要使用此
logo=findviewbyd(R.id.logo)代码>在kotlin中,则不需要声明任何额外变量,只需使用logo.setOnClickListener{}
或任何类似的kotlin将直接从xml中导入它。(注意:-此处logo
是您的imageView id)
尽管如此,如果您想声明任何变量并稍后对其进行初始化,则可以使用lateinit var logo:ImageView
或简单且可为空的变量,如var logo:ImageView?=空
,稍后将其初始化。
谷歌上有很多博客和S.O问题,你可以在那里找到更多关于lateinit
和nullable
变量的信息。是您可以参考的S.O问题之一。您可以初始化为null
,然后使用它
var logo: ImageView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.simple_layout)
logo = findViewById(R.id.imageView)
}
您不能重新分配val,因此我建议您将其设置为var。因为您以后也要初始化它,您需要声明一个lateinit var,即lateinit var徽标:ImageView
,或者您可以将其初始化为null,即var徽标:ImageView?=空,然后你可以重新指定为initentedlogo=findViewById(R.id.logo)
我已经尝试将val更改为varPeople这里的人会更喜欢它,因为你添加了错误消息和代码,而不是图像链接。另外,你的Java代码无效这是什么语言?答案不是Java或Kotlin更新的。
var logo: ImageView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.simple_layout)
logo = findViewById(R.id.imageView)
}