[英]Parameter specified as non-null is null in ArrayAdaper
我已經為微調器擴展了 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
}
返回的值應該可以為空。
就我而言,我只需要添加“?” 到 convertView 參數
override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View {
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
}
// 更改 View 對象(itemView)的名稱與 getView 第二個對象(view)不同。 所以將視圖更改為 itemView 或其他名稱
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.