Параметр, указанный как не-null, равен null в ArrayAdaper

я расширил ArrayAdapter для spinner:

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)

любые идеи как это исправить?

3 ответов


эта проблема была вызвана инкрементной компиляцией. Просто необходимо перестроить проект после преобразования из 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
}

возвращаемое значение должно быть null.


override fun getView(i: Int, view: View, parent: ViewGroup): View {

var itemView = LayoutInflater.from(context).inflate(R.layout.item_dashbord_data, parent, false)

        return itemView
    }

/ / изменить имя объекта представления (itemView) отличается от getView второго объекта (view). поэтому измените представление на itemView или другое имя