有没有人能帮我纠正这个错误?
class PokemonAdapter(
private val context: Context,
private val pokemons: MutableList<PokemonItem> = mutableListOf(),
var onItemClickListener: (pokemon: PokemonItem) -> Unit = {}
) : RecyclerView.Adapter<PokemonAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PokemonAdapter.ViewHolder {
val viewCriada = LayoutInflater.from(context).inflate(
R.layout.item_pokemon,
parent,
false
)
return ViewHolder(viewCriada)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.vincula(pokemons[position])
}
override fun getItemCount() = pokemons.size
fun add(pokemons: List<PokemonItem>) {
this.pokemons.clear()
this.pokemons.addAll(pokemons)
notifyDataSetChanged()
}
inner class ViewHolder(itemView: View) :
RecyclerView.ViewHolder(itemView) {
private lateinit var pokemon: PokemonItem
private val campoNome by lazy { itemView.item_pokemon_nome }
fun vincula(pokemonItem: PokemonItem) {
this.pokemon = pokemon
campoNome.text = pokemonItem.nome
}
}
}发布于 2021-03-23 01:13:00
在这里,您似乎正在将pokemon设置为自身,但它实际上尚未设置:
fun vincula(pokemonItem: PokemonItem) {
this.pokemon = pokemon // < -- This line
campoNome.text = pokemonItem.nome
}也许你是这个意思:
fun vincula(pokemonItem: PokemonItem) {
this.pokemon = pokemonItem
campoNome.text = pokemonItem.nome
}发布于 2021-03-23 01:13:53
问题出在vincula函数中
this.pokemon = pokemonItemhttps://stackoverflow.com/questions/66750662
复制相似问题