我有一个班级,我用来在我的活动中获取GPS数据。在构造函数中,我将活动的上下文传递给它:
gpsFetcher = new GPSFetcher(this);
在gpsFetcher课程中我有:
this.context = c.getApplicationContext();
或者只是
this.context = c;
然后我打电话给toast:
Toast.makeText(context, "sometext", Toast.LENGTH_LONG);
但它永远不会出现......有什么我想念的吗?有可能吗?
谢谢!
答案 0 :(得分:11)
你忘了Toast#show
吗?
Toast toast = Toast.makeText(context, "sometext", Toast.LENGTH_LONG);
toast.show();
答案 1 :(得分:1)
您还必须致电show()
:
Toast.makeText(context, "sometext", Toast.LENGTH_LONG).show();
答案 2 :(得分:0)
我遇到了同样的问题,但我解决了。!!在非活动类中,您只需宣布一个“公共静态字符串”。然后在您的MainActivity或其他活动中,您可以直接使用Toast。
就我而言,我声明了一个非活动类NoteDB。所以我在课堂上宣布public static String S
。 (你可以在课堂上改变S值。然后在我的MainActivity中,我宣布
Toast(MainActivity.this, NoteDB.S ,TOAST.SHORT_LENTGH).show();
效果很好。
答案 3 :(得分: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.makeText(context, "toast inside class!!", Toast.LENGTH_SHORT).show();