0

在这里尝试解决我的问题。它很相似,但我使用片段,所以当我需要上下文时,我通常需要调用 getActivity()。

基本上我有上面链接中描述的 App.java,我有

android:name=".App" inside my <application> tag

添加到我的 AndroidManifest.xml。现在我有了这个类来收集我经常使用的所有东西:

public class MiscMethods{
public static void ErrorToast(int errorCode) {
    String errorString = null;
    if(errorCode==1){ errorString = App.getContext().getString(R.string.error_tooManyFieldsEmpty);}
    if(errorCode==2){ errorString = App.getContext().getString(R.string.error_featureComingSoon);}
    if(errorCode==3){ errorString = App.getContext().getString(R.string.error_SwitchBreak);}
    else{errorString="Wrong Error Code";}
    Toast errormsg = Toast.makeText(App.getContext(), errorString, Toast.LENGTH_SHORT);
    errormsg.setGravity(Gravity.CENTER, 0, 0);
    errormsg.show();
}
}

在我的一个片段中,我称之为

MiscMethods.ErrorToast(1);

我只是从我的方法的“else {}”部分收到“错误的错误代码”消息

你能帮我改正吗?

4

2 回答 2

1

更好的格式会使您的问题更容易找到:

public static void ErrorToast(int errorCode) {
    String errorString = null;
    if (errorCode == 1) {
        errorString = App.getContext().getString(R.string.error_tooManyFieldsEmpty);
    }
    if (errorCode == 2) {
        errorString = App.getContext().getString(R.string.error_featureComingSoon);
    }
    if (errorCode == 3) {
        errorString = App.getContext().getString(R.string.error_SwitchBreak);
    } else {
        errorString = "Wrong Error Code";
    }
    Toast errormsg = Toast.makeText(App.getContext(), errorString, Toast.LENGTH_SHORT);
    errormsg.setGravity(Gravity.CENTER, 0, 0);
    errormsg.show();
}

正如您现在可能看到的那样,您if (errorCode == 1)应该可以工作,但会被覆盖,因为if (errorCode == 3)在这种情况下将是错误的,并且您的 else 将覆盖您的errorString变量。

Aswitch(errorCode)和 3 个案例就是您要找的。

最后提示:改进您的格式!

于 2012-10-02T21:49:55.177 回答
0

在您的CoreApplication.java中的代码下编写

[第1步]

public class CoreApplication extends Application {

private static CoreApplication instance; 
}

[第2步]

onCreate(){
instance = this;
}

【第三步】
添加

public static CoreApplication getGlobalApplicationContext() {

if (instance == null) {
throw new IllegalStateException("this application does not 
inherit GlobalApplication"); " +
"}

return instance;
}

[Step4]
调用getGlobalApplicationContext()你的片段

于 2019-05-12T07:38:30.297 回答