无法解析Toast的maketext()方法

时间:2013-07-18 07:07:45

标签: android

创建Toast

时出错
Toast toast = Toast.makeText(this, text, duration);

我无法解决makeText()的{​​{1}}方法。

我收到此错误

Toast

19 个答案:

答案 0 :(得分:25)

makeText的签名如下

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

第一个参数必须是上下文对象。您放置this,但this引用此对象,它可能与Activity(例如Fragment)不同。

答案 1 :(得分:21)

您案例中

可能不是活动的对象。您可能正在使用Toast.makeText方法单击Listener对象。 要解决此问题,您需要使用getApplicationContext():

Toast.makeText(getApplicationContext(),“Your Message”,Toast.LENGTH_LONG);

答案 2 :(得分:8)

您是否导入了Toast小部件?

import android.widget.Toast;

如果要立即输出,也可以在同一行调用show():

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

希望有所帮助。

答案 3 :(得分:5)

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

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

答案 4 :(得分:3)

尝试Toast toast = Toast.makeText(getActivity(), text, duration);

如果您希望显示

,您可能还希望附加.show()

答案 5 :(得分:3)

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();
    }

```

答案 6 :(得分:2)

Toast.makeText(YourActivity.this,text,duration).show();

答案 7 :(得分:1)

如果您在MainActivity中尝试Toast您的文字,请执行以下操作:

Toast.makeText(getApplicationContext(), "Your text", Toast.LENGTH_LONG).show();

答案 8 :(得分:1)

我在android studio中遇到过类似的问题,我在片段

中使用getActivity()代替this解决了这个问题
Toast.makeText(getActivity(), "Your Text", Toast.LENGTH_SHORT).show();

答案 9 :(得分:1)

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

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

答案 10 :(得分:1)

代替

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

在“此”字之前添加您的活动名称

Toast toast = Toast.makeText(MyActivity.this, text, duration); 

答案 11 :(得分:0)

<块引用>

假设您正在片段中创建吐司....所以在上下文中使用 getactivity

假设您正在片段中创建吐司....所以在上下文中使用 getactivity

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

答案 12 :(得分:0)

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

Toast.makeText(Activity.this, "Message",Toast.<specify Lenght>).show();

其中Activity.this是当前活动,Message是您要显示的字符串,而Toast.length是您要为其显示其长度的长度。

答案 13 :(得分:0)

在onClick方法中尝试

std::vector <std::vector <int>> fill(int lin, int col) {
    int val;
    std::vector <std::vector<int>> mat(lin);

    for (int i = 0; i < lin; i++) {
        mat[i].resize(col);
        for (int j = 0; j < col; j++) {
            std::cin >> val;
            mat[i][j] = val;
        }
    }

    return mat;
}

它确实对我有用。

答案 14 :(得分:0)

如果在Tabbed Activity内的片段中有Toast,请使用getContext()例如

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

答案 15 :(得分:0)

首先添加

 import android.widget.Toast;

声明(如果尚未)

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

答案 16 :(得分:0)

也有类似的问题,但

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;
}

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

我遇到了类似的问题,但在我的情况下,我发现Android Studio中的Xamarin c#和Java在调用某些函数(功能相同)时存在差异。

使用Xamarin和c#时,makeText变为MakeText并显示为Show,如下所示:

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

希望这会有所帮助:)