代码之家  ›  专栏  ›  技术社区  ›  TheGreatCornholio

Android recyclerview-从第二个适配器(Kotlin)调用方法/函数

  •  0
  • TheGreatCornholio  · 技术社区  · 6 年前

    这是 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)
    }
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Bartek Pacia    6 年前

    我认为您不愿意创建新的MainActivity(在您调用其构造函数的添加代码中)。