我正在尝试在我的SettingsFragment中添加一个onPreferenceClickListener,如果这样做的话:
signOutPref.setOnPreferenceClickListener(object: Preference.OnPreferenceClickListener {
override fun onPreferenceClick(preference: Preference?): Boolean {
val signOutIntent = Intent(activity, SignInActivity::class.java)
startActivity(signOutIntent)
return true
}
})
发出警告时,它可以完美工作:
如果我这样写:
signOutPref.setOnPreferenceClickListener {
val signOutIntent = Intent(activity, SignInActivity::class.java)
startActivity(signOutIntent)
return true
}
这应该是完全一样的东西,并且是最好的方法,我得到了:
在
return true
语句上。我想念什么?第二种方法与第一种不同吗?如何摆脱这个错误?
最佳答案
在lambda中,最后一条语句自动变为返回值,除非将其返回类型推断为Unit
。因此,只需删除return
即可。
signOutPref.setOnPreferenceClickListener {
val signOutIntent = Intent(activity, SignInActivity::class.java)
startActivity(signOutIntent)
true
}
该文件说: