Android 无法解析Toast的maketext()方法

Android 无法解析Toast的maketext()方法,android,Android,创建Toast Toast toast = Toast.makeText(this, text, duration); 我无法解析makeText()方法的Toast 我得到了这个错误 java: no suitable method found for makeText(idtech.ESDN.ShapeData,java.lang.CharSequence,int) method android.widget.Toast.makeText(android.content.Conte

创建
Toast

Toast toast = Toast.makeText(this, text, duration);
我无法解析
makeText()
方法的
Toast

我得到了这个错误

java: no suitable method found for makeText(idtech.ESDN.ShapeData,java.lang.CharSequence,int)
    method android.widget.Toast.makeText(android.content.Context,int,int) is not applicable
      (actual argument idtech.ESDN.ShapeData cannot be converted to android.content.Context by method invocation conversion)
    method android.widget.Toast.makeText(android.content.Context,java.lang.CharSequence,int) is not applicable
      (actual argument idtech.ESDN.ShapeData cannot be converted to android.content.Context by method invocation conversion)

你导入toast小部件了吗

import android.widget.Toast;
如果要直接输出,也可以在同一行中调用show():

Toast toast = Toast.makeText(context, text, duration).show();

希望有帮助

makeText的签名如下

public static Toast makeText (Context context, CharSequence text, int duration)

第一个参数必须是上下文对象。你把
这个
,但是
这个
指的是这个对象,它可以是与
活动
不同的东西(例如
片段

Try
Toast-Toast=Toast.makeText(getActivity(),text,duration)

如果要显示,您可能还希望附加
.show()
,请确保键入:
Toast Toast=Toast.makeText(this,text,duration)

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

在您的情况下,此可能不是活动的对象。您可能正在单击侦听器对象内部使用Toast.makeText方法。 要解决此问题,需要使用getApplicationContext():


Toast.makeText(getApplicationContext(),“您的消息”,Toast.LENGTH\u LONG)

我也遇到过类似的问题,但在我的例子中,我发现Android studio中的Xamarin c#和Java在调用某些函数(相同的函数)时存在差异

使用Xamarin和c#时,makeText变为makeText,show变为show,如下所示:

Toast toast = Toast.MakeText(this, "Text", ToastLength.Long);
toast.Show();

希望这对您有所帮助:)

如果您试图在Main活动中为您的文本祝酒,请执行以下操作:

Toast.makeText(getApplicationContext(), "Your text", Toast.LENGTH_LONG).show();
onClick(视图视图)
中,单击
RecyclerView.ViewHolder中的侦听器
将使用
View.getContext()
检索上下文,如下所示:

```


```

如果您试图在片段中使用Toast,这可能会有所帮助:

Toast.makeText(Your_Fragment_Name.super.getContext(), "Added", Toast.LENGTH_SHORT).show();

我在android studio中遇到过类似的问题,我通过使用
getActivity()
而不是片段中的
this
来解决这个问题

Toast.makeText(getActivity(), "Your Text", Toast.LENGTH_SHORT).show();

从调用活动中获取上下文(例如this或MainActivity.this),并将其传递到Toast所在的方法中。这样,它与呼叫活动一起生活


从getApplicationContext()和getContext()获取的应用程序上下文主要用于长时间运行的进程。将其用于短期进程可能导致内存泄漏

也有类似问题,但

getContext()
你为我做了这个把戏

// If message field is empty show a toast and alert the user
if (TextUtils.isEmpty(message)) {
   Toast.makeText(getContext(),"Please Enter a message", Toast.LENGTH_SHORT).show();
   return;
}
第一加

 import android.widget.Toast;
声明,如果您尚未

Toast.makeText(YourActvityName.this, "Your Text", Toast.LENGTH_SHORT).show();
而不是

Toast toast = Toast.makeText(this, text, duration);  
在“此”字之前添加您的活动名称


对于选项卡式活动中片段中的Toast,请使用getContext()例如


Toast.makeText(getContext(),“您的文本在这里”,Toast.LENGTH\u SHORT.show()

在onClick方法中,尝试以下操作


Toast.makeText(view.getContext(), "sorry", Toast.LENGTH_LONG).show();



它确实对我起了作用。

就像Blackbelt说的,Toast的语法如下:

Toast.makeText(Activity.this, "Message",Toast.<specify Lenght>).show();
Toast.makeText(Activity.this,“Message”,Toast.).show();
其中,
Activity。此
为当前活动,
Message
为要显示的字符串,
Toast。length
为要显示的长度

假设您正在片段中创建toast,那么请在上下文中使用getactivity

Toast.makeText(getActivity,"Your Text",Toast.LENGTH_SHORT).show();
假设您正在片段中创建toast,那么请在上下文中使用getactivity

Toast.makeText(getActivity,"Your Text",Toast.LENGTH_SHORT).show();

尝试用
getApplicationContext()
.Toast.makeText(YourActivity.this,text,duration).show()替换
this
;我试过了,但还是一样error@Muneem哈比卜:
这个
指的是什么?首先你错过了show()方法。第二件事:如果你面临问题,请始终发布logcat输出。我已经尝试了你的两个建议,但仍然得到相同的错误。也可能是“这”不是一项活动,你想在哪里构建吐司?更多的代码可能会有帮助,但请尝试getApplicationContext()而不是“this”。我应该写什么来代替它?我已经尝试了this和getApplicationContext()。我放置了getApplicationContext(),但仍然得到相同的错误。text和duration是什么类型?String和int?发布准确的错误,你得到了什么样的类,你在扩展吗?所以如果我得到你,代码是不正确的formatted@stephenrauch?view.getContext()工作正常!谢谢
Toast.makeText(Activity.this, "Message",Toast.<specify Lenght>).show();
Toast.makeText(getActivity,"Your Text",Toast.LENGTH_SHORT).show();