在kotlin中平台types的智能广播

我正在使用kotlin创建我的适配器,它在android中扩展了BaseAdapter 。 下面是getView方法内部的代码

 override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { var binding : ImageBinding var conView = convertView if(conView == null){ binding = DataBindingUtil.inflate(LayoutInflater.from(parent?.context), R.layout.image, parent, false) conView = binding.root; conView.tag = binding }else { binding = conView.getTag() as ImageBinding } return conView; } 

conView.tag = bindingbinding = conView.getTag()突出显示粉红色的颜色。当我hover在conView.tag = binding与我的鼠标popup式消息智能转换到android.view.View! 。 当我把鼠标hover在binding = conView.tag ,会popup一个消息智能转换为android.view.View 。 注意两个消息中后者缺少平台types符号(!)的区别

我怎样才能实现这两个建议的选项?

One Solution collect form web for “在kotlin中平台types的智能广播”

因为convertView是一个可为空的typesvariables( View? ),所以var conView = convertView创建一个可为空的conViewvariables的副本。 所以你应该把conViewvariables当作空值来处理。

尝试以下方法:

 override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? { var binding : ImageBinding convertView?.let { binding = it.tag as ImageBinding return it } binding = DataBindingUtil.inflate(LayoutInflater.from(parent?.context), R.layout.image, parent, false) val conView = binding.root conView.tag = binding return conView } 

注意 :Kotlin中的分号不是必需的,请注意

  • 如何创建需要find目标文档的Firestore事务
  • 使用android从图像背景中检测颜色
  • 一次多个权限不工作在Android
  • 更新Android Studio后无法打开项目
  • Kotlin Parcelize Exception API <21
  • 以编程方式更改可绘制的颜色
  • Kotlin对象加载延迟
  • 在lateinit声明后variables不更新,无法返回
  • Android TextInputLayout图标出错(或提示)文本
  • 如何在Kotlin(android)中动态加载图像?
  • 无法用匕首2运行kotlin
  • Kotlin language will be the best programming language for Android.