无法解析Toast的maketext()方法

Mun*_*bib 19 android

我在创建时遇到错误 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);


Sco*_*lme 8

你导入了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)

希望有所帮助.


Sha*_*hko 7

在 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)

``


Gre*_*ion 5

确保键入: Toast toast = Toast.makeText(this, text, duration);

不: Toast toast = new Toast.makeText(this, text, duration);