Whatever a video is made on Youtube, I do the same, Java language is used in the video, and I try to do it with Kotlin. I do exactly the same. I tried all the situations but could not fix them. I would be glad if you help
JavaScript
x
//MainActiviy
var photoList: List<Photo>? = null
photoList = ArrayList()
photoList = ArrayList(Arrays.asList(demoModel!!.photos))
//Model
data class DemoModel(
@SerializedName("photos")
var photos: List<Photo>? = null
)
//Adapter
class Adapter(private val context: Context, private val photoList: List<Photo>) :
RecyclerView.Adapter<Adapter.MyViewHolder>() {
Advertisement
Answer
This is how I fixed it, but this time only the last value appears in the recyclerView @aldrin
JavaScript
//In call;
val demoModel = response.body()
demoModel?.let {
PutDataIntoRecyclerView(ArrayList(Arrays.asList(it.photos)))
}
//In recyclerView function;
fun PutDataIntoRecyclerView(photoList: List<List<Photo>?>) {
val adapter = Adapter(this, photoList)
binding.recyclerViewID.setLayoutManager(LinearLayoutManager(this))
binding.recyclerViewID.adapter = adapter
}
//In Adapter
class Adapter(private val context: Context, private val photoList: List<List<Photo>?>) :
RecyclerView.Adapter<Adapter.MyViewHolder>() {
.
//In Adapter onBindViewHolder;
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val myList = photoList[position]
myList?.forEach {
println(it.imgSrc)
holder.photoId?.text = it.id.toString()
holder.photoSol?.text = it.sol.toString()
holder.photoEarthDate?.text = it.earthDate.toString()
}
}