9

我有一门课用来在我的活动中获取 GPS 数据。在构造函数中,我将活动的上下文传递给它:

gpsFetcher = new GPSFetcher(this);

在 gpsFetcher 类中我有:

this.context = c.getApplicationContext();

要不就

this.context = c;

然后我用:

Toast.makeText(context, "sometext", Toast.LENGTH_LONG);

但它永远不会出现......我错过了什么吗?可能吗?

谢谢!

4

4 回答 4

12

你忘记了Toast#show吗?

Toast toast = Toast.makeText(context, "sometext", Toast.LENGTH_LONG);
toast.show();
于 2011-04-04T20:22:33.033 回答
2

您还必须调用show()

Toast.makeText(context, "sometext", Toast.LENGTH_LONG).show();

于 2016-10-06T08:41:36.953 回答
0

我遇到了同样的问题,但我解决了它。!在非活动类中,您只需宣布一个“公共静态字符串”。然后在您的 MainActivity 或其他活动中,您可以直接使用 Toast。

就我而言,我声明了一个非活动类 NoteDB。所以我 public static String S在课堂上声明。(您可以在课堂上更改 S 值。然后在我的 MainActivity 中,我宣布

Toast(MainActivity.this, NoteDB.S ,TOAST.SHORT_LENTGH).show();

它运作良好。

于 2015-04-16T15:38:33.323 回答
0

要在非活动 Java 类中显示 Toast,请在 Java 类的构造函数中添加 Context

[这里 PrizeMethods 是我的 java 类]

public class PrizeMethods {
    Context context;
    public PrizeMethods(Context context) {
        this.context = context;
    }
   }

以及在活动中实例化此类的位置(创建它的对象,在主要活动中使用它),添加上下文作为参数。

像这样:

 PrizeMethods pm=new PrizeMethods(this);

在你的java类中之后,你可以像这样创建一个toast:

 Toast.makeText(context, "toast inside class!!", Toast.LENGTH_SHORT).show();
于 2020-08-09T00:01:34.683 回答