指定为非null的参数在ArrayAdaper中为null

我已经扩展了微调的ArrayAdapter:

class OrderAdapter(context: Context, resource: Int, objects: List<Order>) : ArrayAdapter<Order>(context, resource, objects) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? { val view = super.getView(position, convertView, parent) view?.let { view.find<TextView>(android.R.id.text1).text = getItem(position).name } return view } override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View? { val view = super.getDropDownView(position, convertView, parent) view?.let {view.find<TextView>(android.R.id.text1).text = getItem(position).name } return view } } 

我得到例外:

 java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter convertView at com.github.blabla.endlesss.ui.adapter.OrderAdapter.getView(OrderAdapter.kt:0) 

任何想法如何解决它?

这个问题是由增量编译造成的。 只需要从Java转换后重建项目。

请检查下面的示例:

 override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View? { return getCustomView(position, convertView, parent) } override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? { return getCustomView(position, convertView, parent) } fun getCustomView(position: Int, convertView: View?, parent: ViewGroup): View? { val rootView: View? = LayoutInflater.from(context).inflate(R.layout.my_custom_view, parent, false) return rootView } 

返回的值应该是可空的。