Android Toast消息在回收器视图中不起作用
此方法正在绑定列表上的数据:Android Toast消息在回收器视图中不起作用,android,android-recyclerview,android-toast,Android,Android Recyclerview,Android Toast,此方法正在绑定列表上的数据: override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) { holder.bindItems(userList[position]) holder.imgDelete.setOnClickListener(View.OnClickListener { Toast.makeText(this,"Delete Button Clicked
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):干杯!在android.widget.Toast中定义
请检查并帮助使用
Toast.makeText(<Your Activity Context>,"Copy Button Clicked", Toast.LENGTH_SHORT).show()
你如何获得上下文
Context context;
一,-
二,-
三,-
4-
五,-
在构造函数中传递活动上下文以供CustomAdapter使用
Toast.makeText(<Your Activity Context>,"Copy Button Clicked", Toast.LENGTH_SHORT).show()
你如何获得上下文
Context context;
一,-
二,-
三,-
4-
五,-
在CustomAdapter的构造函数中传递活动上下文我认为,这里使用的应用程序上下文应该是活动类上下文,而不是
此
,因为在onClickListener中,此
实际上不是活动的应用程序上下文,而是父视图的应用程序上下文
试试这个:
Toast.makeText(<Here_comes_your_activity_context>,"Copy Button Clicked", Toast.LENGTH_SHORT).show()
Toast.makeText(,“单击复制按钮”,Toast.LENGTH\u SHORT).show()
别忘了在这里用你自己的活动上下文替换你的活动上下文 我认为,这里使用的应用程序上下文应该是活动类上下文,而不是
this
,因为onClickListener中的this
实际上不是活动的应用程序上下文,而是父视图的应用程序上下文
试试这个:
Toast.makeText(<Here_comes_your_activity_context>,"Copy Button Clicked", Toast.LENGTH_SHORT).show()
Toast.makeText(,“单击复制按钮”,Toast.LENGTH\u SHORT).show()
别忘了在这里用你自己的活动上下文替换你的活动上下文 仅通过传递此消息,您就没有点击侦听器中的上下文。而是从视图中获取上下文 将
此
替换为holder.imgDelete.context
holder.imgDelete.setOnClickListener(View.OnClickListener {
Toast.makeText(holder.imgDelete.context,"Delete Button Clicked", Toast.LENGTH_SHORT).show()
})
仅通过传递此消息,您就没有点击侦听器中的上下文。而是从视图中获取上下文 将
此
替换为holder.imgDelete.context
holder.imgDelete.setOnClickListener(View.OnClickListener {
Toast.makeText(holder.imgDelete.context,"Delete Button Clicked", Toast.LENGTH_SHORT).show()
})
我会建议一种完全不同的方法(顺便说一句,我知道你在Kotlin工作,我会用java分享我的代码,我相信你会理解,但它也会帮助java程序员) 尝试将上下文另存为活动中的变量(在创建时将该变量设置为活动的“this”)。 将该变量设为静态变量。 像这样:
public class MainActivity extands Activity{
private static Context context;
@Override
protected void onCreate (Bundle savedInstanceState){
//your code...
context = this;
}
public static Context getContext(){
return context;
}
}
然后在烤面包片里面,只需这样做:
override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) {
holder.bindItems(userList[position])
holder.imgDelete.setOnClickListener(View.OnClickListener {
Toast.makeText(MainActivity.getContext(),"Delete Button Clicked", Toast.LENGTH_SHORT).show()
})
holder.imgCopy.setOnClickListener(View.OnClickListener {
Toast.makeText(MainActivity.getContext(),"Copy Button Clicked", Toast.LENGTH_SHORT).show()
})
}
我会建议一种完全不同的方法(顺便说一句,我知道你在Kotlin工作,我会用java分享我的代码,我相信你会理解,但它也会帮助java程序员) 尝试将上下文另存为活动中的变量(在创建时将该变量设置为活动的“this”)。 将该变量设为静态变量。 像这样:
public class MainActivity extands Activity{
private static Context context;
@Override
protected void onCreate (Bundle savedInstanceState){
//your code...
context = this;
}
public static Context getContext(){
return context;
}
}
然后在烤面包片里面,只需这样做:
override fun onBindViewHolder(holder: CustomAdapter.ViewHolder, position: Int) {
holder.bindItems(userList[position])
holder.imgDelete.setOnClickListener(View.OnClickListener {
Toast.makeText(MainActivity.getContext(),"Delete Button Clicked", Toast.LENGTH_SHORT).show()
})
holder.imgCopy.setOnClickListener(View.OnClickListener {
Toast.makeText(MainActivity.getContext(),"Copy Button Clicked", Toast.LENGTH_SHORT).show()
})
}
已尝试:Toast.makeText(CustomAdapter,“单击删除按钮”,Toast.LENGTH\u SHORT).show()//但不工作使用活动上下文非适配器。请让我知道如何在适配器类中添加活动。因为我的函数onBindViewHolder在CustomAdapter类中。请尝试此=>holder.itemView.getContext()@Rahul你能不能把答案标记为已接受的答案,这样就没有人会感到困惑..就像我一样.试过:Toast.makeText(CustomAdapter,“单击删除按钮”,Toast.LENGTH\u SHORT).show()//但不工作使用活动上下文非适配器。请让我知道如何在适配器类中添加活动。因为我的函数onBindViewHolder在customAdapter类中。请尝试此=>holder.itemView.getContext()@Rahul您能不能将答案标记为已接受的答案,这样就没有人会感到困惑..就像我一样。尝试过:Toast.makeText(CustomAdapter,“单击删除按钮”,Toast.LENGTH\u SHORT).show()//但不工作尝试:Toast.makeText(CustomAdapter,“单击删除按钮”,Toast.LENGTH\u SHORT).show()//但不工作