首页 > 解决方案 > Toast 消息在 Recycler 视图中不起作用

问题描述

此方法绑定列表上的数据:

override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) {
    holder.bindItems(userList[position])
    holder.imgDelete.setOnClickListener(View.OnClickListener {
        Toast.makeText(this,"Delete Button Clicked", Toast.LENGTH_SHORT).show()

    })
    holder.imgCopy.setOnClickListener(View.OnClickListener {
        Toast.makeText(this,"Copy Button Clicked", Toast.LENGTH_SHORT).show()
    })
}

错误获取:

不能使用提供的参数调用以下函数: public open fun makeText(p0: Context!, p1: CharSequence!, p2: Int): Toast! 在 android.widget.Toast 中定义

请检查并帮助

标签: androidandroid-recyclerviewandroid-toast

解决方案


利用

Toast.makeText(<Your Activity Context>,"Copy Button Clicked", Toast.LENGTH_SHORT).show()

代替

Toast.makeText(this,"Copy Button Clicked", Toast.LENGTH_SHORT).show()

你如何获得上下文

Context context;

1-

@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
   super.onAttachedToRecyclerView(recyclerView);
   context = recyclerView.getContext();
}

2-

@Override
public CustomAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,int viewType) {
   context = parent.getContext();

   return YourViewHolder;
}

3-

holder.itemView.getContext() 

4-

holder.imgDelete.getContext()

5-

在 CustomAdapter 的构造函数中传递活动上下文


推荐阅读