在Android中的静态方法中显示Toast

pet*_*llw 6 methods static android toast

我想在静态方法中满足某个条件时向屏幕显示一个Toast,如下所示:

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();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这给了我错误:'无法从ContextWrapper类型中对非静态方法getApplicationContext()进行静态引用.

希望我在这里提供了足够的信息.任何帮助将非常感激!

lct*_*717 19

将上下文作为参数传递(在调用中,使用getApplicationContext()作为输入)并在静态函数中使用上下文:

public static void setAuth(String a, Context context) {
...
Toast ifx = Toast.makeText(context, "Please enter name in correct format.", Toast.LENGTH_SHORT);
...
}
Run Code Online (Sandbox Code Playgroud)

并在函数调用中

setAuth("Some String",getApplicationContext());
Run Code Online (Sandbox Code Playgroud)

  • 在这里我看到错误:非静态方法getapplicationcontext()不能从静态上下文中引用 (2认同)