O bir hata değil uygulama ile alakalı bir uyarıdır sizin adapter sınıfınız ile alaklı değil. Burda gelen veriyi kontrol ediniz boş geliyorsa zaten doldurulamaz. Adapter sınıfında veri çekilemez siz yapıyı yanlış kurmuşssunuz. Örnek adapter sınıfını bırakıyorum;
class PayoutListAdapter(var payouts: List<Payout>, private val itemClick: (Payout) -> Unit) :
RecyclerView.Adapter<PayoutListAdapter.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.item_payout, parent, false)
return ViewHolder(view, itemClick)
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
holder.bindForecast(payouts[position])
}
override fun getItemCount() = payouts.size
class ViewHolder(view: View, private val itemClick: (Payout) -> Unit) :
RecyclerView.ViewHolder(view) {
@SuppressLint("SetTextI18n")
fun bindForecast(p: Payout) {
with(p) {
val context = itemView.context
val v = itemView
v.tvPayoutTitle.text = p.title
v.tvReqiredRank.text= p.requiredLevel
v.setOnClickListener { itemClick(this) }
}
}
}
}En üstte adapter değişkeninizi oluşturun
var payoutListAdapter:PayoutListAdapter?=null
Bu şekilde kullanın
override fun onDataLoad(payoutList: List<Payout>) { // bu fonksiyon benim verilerim gelince çalışıyor
rvPayoutList.apply {
if(payoutListAdapter==null){
payoutListAdapter = PayoutListAdapter(payoutList) {
// bu parantez lambda dır unit metot olarak çalışır geri dönüşü default it dir isterseniz { gelenveri -> şeklinde değiştirebilirsiniz
payoutItemClicked(it) // bu kısım tıklanılan item'ın verilerini içerir burda başka bir metoda gönderiyorum
}
}else{
payoutListAdapter!!.payouts = payoutList
}
adapter=payoutListAdapter
}
println(payoutList)
}edit: layout manageri xml kısmında hallediniz