在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()