【发布时间】:2018-05-13 10:25:13
【问题描述】:
我正在尝试为 android studio 中的选项菜单项添加事件,但是当我使用 item.itemId 时收到此错误消息
在可空对象上只允许安全(?.) 或非空断言(!!.) 调用 MenuItem 类型的接收者
这是我的代码
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
if(item.itemId==R.id.home){
var homeIntent= Intent(this,SignIn::class.java)
startActivity(homeIntent)
}
else if(item.itemId==R.id.sign_in){
var signInIntent= Intent(this,SignIn::class.java)
startActivity(signInIntent)
}
else if(item.itemId==R.id.close){
System.exit(0)
}
return super.onOptionsItemSelected(item)
}
【问题讨论】:
-
item是可空类型,所以可以为空。在 Kotlin 中,当您想要访问可空类型的某些内容时,您必须使用安全运算符?.,如错误消息提示,在您的情况下:item?.itemId==R.id.home等。 -
@Melquiades 非常感谢您的回复,这解决了问题