6

当我的静态方法中满足某个条件时,我希望在屏幕上显示敬酒,如下所示:

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() 进行静态引用”。

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

4

2 回答 2

23

将上下文作为参数传入(在调用中,使用 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());
于 2013-07-23T19:13:21.643 回答
1

您必须将上下文作为参数传递给您的方法

public static void dialog(boolean value, Context context) {
        if (value) {
 Toast.makeText(context, "", Toast.LENGTH_SHORT).show();

}
}
于 2017-10-07T06:53:18.440 回答