class MainActivity : AppCompatActivity() {
var data = listOf("a", "b", "c", "d", "e", "f", "g", "h", "i")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val mAdapter = MAdapter(this,R.layout.mitem, data)
setContentView(R.layout.activity_main)
listView.adapter = mAdapter
}
}
class MAdapter(context: Context, var id: Int, objects: List<String>) :
ArrayAdapter<String>(context, id, objects) {
override fun getView(pos: Int, cv: View, pa: ViewGroup): View {
val mItem = getItem(pos)
val v = LayoutInflater.from(context).inflate(id, pa, false)
v.itemid.text = mItem
v.itemdes.text = "common description"
return v
}
}
I think the layout file has no problem. It shows no warnings/errors in compiling process. It crashes when running on devices.
logcat is here
07-31 17:58:38.470 30321-30321/? E/dalvikvm: >>>>> Normal User
07-31 17:58:38.470 30321-30321/? E/dalvikvm: >>>>> com.lukhy.landroid [ userId:0 | appId:10211 ]
07-31 17:58:50.950 30321-30321/com.lukhy.landroid E/dalvikvm: Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering
07-31 17:58:51.110 30321-30321/com.lukhy.landroid E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.lukhy.landroid, PID: 30321
java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter cv
at com.lukhy.landroid.MAdapter.getView(MainActivity.kt)
at android.widget.AbsListView.obtainView(AbsListView.java:2753)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1274)
at android.widget.ListView.onMeasure(ListView.java:1186)
at android.view.View.measure(View.java:17442)
...