在 Kotlin 中获取自定义 ArrayAdapter 的所有项目
Get all Items of a custom ArrayAdapter in Kotlin
我正在制作一个自定义 ArrayAdapter,我需要获取项目列表,我只是创建了一个名为 getItems 的方法,return 列表在适配器构造函数中传递,问题是 Android 工作室给我这个错误信息:
我在 Java 中这样做过,但在 Kotlin 中可以实现相同的行为。
这是我的实际代码:
class FichaDeContactoVaciaAdapter(context: Context,var items :
List<FichaContacto>) : ArrayAdapter<FichaContacto>(context, 0, items){
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val rowView = inflater.inflate(R.layout.list_item_ficha_contacto, parent,false)
val addCardButton = rowView.findViewById<Button>(R.id.anadirFichaButton)
addCardButton.setOnClickListener{
add(FichaContacto())
}
val currentFichaContacto = getItem(position)
// rowView.textInputLayoutficha.setText("Hola mundo desde el adapter")
val removeCardText = rowView.findViewById<TextView>(R.id.removerFicha)
if (count == 1){
removeCardText.visibility = View.GONE
}
removeCardText.setOnClickListener{
Toast.makeText(rowView.context,"Estás haciendo click en el label " + position, Toast.LENGTH_SHORT).show()
if(count > 1){
remove(getItem(position))
}
}
return rowView
}
fun getItems(): List<FichaContacto> {
return items
}
}
那么,如何获取 ArrayAdapter 的 Items 列表?
您可以删除 getItems()
函数。您可以访问项目 属性
像这样。
val adapter = FichaDeContactoVaciaAdapter(context, items)
adapter.items
我正在制作一个自定义 ArrayAdapter,我需要获取项目列表,我只是创建了一个名为 getItems 的方法,return 列表在适配器构造函数中传递,问题是 Android 工作室给我这个错误信息:
我在 Java 中这样做过,但在 Kotlin 中可以实现相同的行为。 这是我的实际代码:
class FichaDeContactoVaciaAdapter(context: Context,var items :
List<FichaContacto>) : ArrayAdapter<FichaContacto>(context, 0, items){
override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val rowView = inflater.inflate(R.layout.list_item_ficha_contacto, parent,false)
val addCardButton = rowView.findViewById<Button>(R.id.anadirFichaButton)
addCardButton.setOnClickListener{
add(FichaContacto())
}
val currentFichaContacto = getItem(position)
// rowView.textInputLayoutficha.setText("Hola mundo desde el adapter")
val removeCardText = rowView.findViewById<TextView>(R.id.removerFicha)
if (count == 1){
removeCardText.visibility = View.GONE
}
removeCardText.setOnClickListener{
Toast.makeText(rowView.context,"Estás haciendo click en el label " + position, Toast.LENGTH_SHORT).show()
if(count > 1){
remove(getItem(position))
}
}
return rowView
}
fun getItems(): List<FichaContacto> {
return items
}
}
那么,如何获取 ArrayAdapter 的 Items 列表?
您可以删除 getItems()
函数。您可以访问项目 属性
像这样。
val adapter = FichaDeContactoVaciaAdapter(context, items)
adapter.items