在Android中从静态方法中显示Toast
当静态方法中满足某个条件时,我希望在屏幕上显示一个祝酒词,如下所示:在Android中从静态方法中显示Toast,android,methods,static,toast,Android,Methods,Static,Toast,当静态方法中满足某个条件时,我希望在屏幕上显示一个祝酒词,如下所示: public static void setAuth(String a) { String[] nameparts1; if (a.trim().isEmpty()) { author = "Author's Name"; firstinit1 = "Initial"; surname1 = "Surname"; } if (a == 'X'
public static void setAuth(String a) {
String[] nameparts1;
if (a.trim().isEmpty()) {
author = "Author's Name";
firstinit1 = "Initial";
surname1 = "Surname";
}
if (a == 'X') {
Toast ifx = Toast.makeText(getApplicationContext(), "Please enter name in correct format.", Toast.LENGTH_SHORT);
ifx.show();
}
}
但是,这给了我一个错误:“无法从ContextWrapper类型对非静态方法getApplicationContext()进行静态引用”
希望我在这里提供了足够的信息。任何帮助都将不胜感激 将上下文作为参数传入(在调用中,使用getApplicationContext()作为输入),在静态函数中,使用上下文:
public static void setAuth(String a, Context context) {
...
Toast ifx = Toast.makeText(context, "Please enter name in correct format.", Toast.LENGTH_SHORT);
...
}
在函数调用中
setAuth("Some String",getApplicationContext());
必须将上下文作为参数传递给方法
public static void dialog(boolean value, Context context) {
if (value) {
Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
}
}
有点奇怪,这是静态的,不是吗?你可能不应该这么做:这意味着你在依赖安卓系统而不是杀掉你的应用程序。一旦它死了,您的静态引用就死了,消失了。在这里我看到了错误:无法从静态上下文引用非静态方法getapplicationcontext()