Я использую два адаптера для одного и того же списка, но каждый отсортирован по-разному.
Это adapterONE
(я удалил почти все ненужное для этого вопроса):
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val video = videolist[position]
holder.title.text = video.id.toString()
holder.title.setOnClickListener {
hide(video.id)
}
}
override fun getItemCount() = videolist.size
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val view = LayoutInflater.from(parent.context).inflate(R.layout.videoview, parent, false)
return ViewHolder(view)
}
class ViewHolder(itemView: View?) : RecyclerView.ViewHolder(itemView!!){
val title = itemView!!.videoviewTitle!!
}
fun hide(id: Int){
var ppp = 0
for (i in 0 until videolist.size) {
if(videolist[i].id == id){
ppp = i
break
}
}
videolist.removeAt(ppp)
notifyItemRemoved(ppp)
}
Теперь после вызова функции hide
я хочу, чтобы тот же элемент был удален во втором адаптере, поэтому я попытался:
videolist.removeAt(ppp)
notifyItemRemoved(ppp)
MainActivity().adapterTWO.hide(id) // this is what I added
И получил ошибку:
lateinit property adapterTWO has not been initialized
Ноэто не так, потому что adapterTWO
загрузил содержимое
Пожалуйста, помогите и спасибо заранее!
РЕДАКТИРОВАТЬ:
Вот как ясоздать адаптеры в MainActivity
lateinit var adapter: RecentAdapter
lateinit var adapterTrending: TrendingAdapter
fun loadVids(endvids: MutableList<Videos>){
adapter = RecentAdapter(this@MainActivity, endvids, isfavorites)
recyclerViewRecent.adapter = adapter
recyclerViewRecent.layoutManager = LinearLayoutManager(this@MainActivity)
recyclerViewRecent.setHasFixedSize(true)
}
fun loadVidsRecent(endvids: MutableList<Videos>){
adapterTrending = TrendingAdapter(this@MainActivity, endvids, isfavorites)
recyclerViewTrending.adapter = adapterTrending
recyclerViewTrending.layoutManager = LinearLayoutManager(this@MainActivity)
recyclerViewTrending.setHasFixedSize(true)
}