Получить все элементы пользовательского адаптера ArrayAdapter в Котлине - PullRequest
0 голосов
/ 02 декабря 2018

Я делаю собственный ArrayAdapter, и мне нужно получить список элементов, я просто создаю метод с именем getItems, который возвращает список, переданный в конструкторе адаптера, проблема в том, что студия Android выдает мне это сообщение об ошибке: Android studio problem

Я сделал это на 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?

1 Ответ

0 голосов
/ 02 декабря 2018

Вы можете удалить функцию getItems().И вы можете получить доступ к свойству items следующим образом.

val adapter = FichaDeContactoVaciaAdapter(context, items)
adapter.items
...