我在创建时遇到错误 Toast
Toast toast = Toast.makeText(this, text, duration);
Run Code Online (Sandbox Code Playgroud)
我得到无法解决的makeText()方法Toast.
我收到了这个错误
java:没有为makeText找到合适的方法(idtech.ESDN.ShapeData,java.lang.CharSequence,int)方法android.widget.Toast.makeText(android.content.Context,int,int)不适用(实际参数idtech. ESDN.ShapeData无法通过方法调用转换转换为android.content.Context方法android.widget.Toast.makeText(android.content.Context,java.lang.CharSequence,int)不适用(实际参数idtech.ESDN. ShapeData无法通过方法调用转换转换为android.content.Context)
Bla*_*elt 25
makeText的签名如下
public static Toast makeText (Context context, CharSequence text, int duration)
Run Code Online (Sandbox Code Playgroud)
第一个参数必须是上下文对象.你放this,但this 引用这个对象,它可以是一个不同于Activity(Fragment例如).
Pus*_*abh 23
这在你的情况可能不是活动的对象.您可能正在使用Toast.makeText方法单击Listener对象.要解决此问题,您需要使用getApplicationContext():
Toast.makeText(getApplicationContext(),"Your Message",Toast.LENGTH_LONG);
你导入了toast小部件吗?
import android.widget.Toast;
Run Code Online (Sandbox Code Playgroud)
如果要立即输出,也可以在同一行调用show():
Toast toast = Toast.makeText(context, text, duration).show();
Run Code Online (Sandbox Code Playgroud)
希望有所帮助.
在 a 中的onClick(View view)单击侦听器中,使用RecyclerView.ViewHolder检索上下文view.getContext(),如下所示:
``
public class MyHolder extends RecyclerView.ViewHolder implements
View.OnClickListener {
public MyHolder(View itemView) {
super(itemView);
//...
itemView.setOnClickListener(this);
}
@Override
public void onClick(View view) {
Toast.makeText(view.getContext(), "the message",
Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
``
确保键入:
Toast toast = Toast.makeText(this, text, duration);
不:
Toast toast = new Toast.makeText(this, text, duration);