Java Android从静态上下文中获取片段中的资源

Java Android从静态上下文中获取片段中的资源,java,android,static,resources,Java,Android,Static,Resources,我试图解决我的问题。它与此类似,但我使用片段,所以当我需要上下文时,通常需要调用getActivity() 基本上我有上面链接中描述的App.java,我有 android:name=".App" inside my <application> tag 在我的一个片段中,我呼唤 MiscMethods.ErrorToast(1); 我只是从方法的“else{}”部分得到了“错误错误代码”消息 您能帮我纠正一下吗?更好的格式会使您的问题更容易找到: public static vo

我试图解决我的问题。它与此类似,但我使用片段,所以当我需要上下文时,通常需要调用getActivity()

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

android:name=".App" inside my <application> tag
在我的一个片段中,我呼唤

MiscMethods.ErrorToast(1);
我只是从方法的“else{}”部分得到了“错误错误代码”消息


您能帮我纠正一下吗?

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

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)
在这种情况下将为false,而您的else将重写
errorString
变量

一个
开关(errorCode)
这3个案例就是您要找的


最后提示:改进格式

CoreApplication.java中的代码下编写

[第1步]

public class CoreApplication extends Application {

private static CoreApplication instance; 
}
[步骤2]

onCreate(){
instance = this;
}
[步骤3]

[步骤4]

在你的片段中调用
getGlobalApplicationContext()

谢谢,这不是一个格式问题,我只是不知道else在最后一个出现之前就出现了,它是false。。。我认为只有当以上所有的都是错误的时候它才会运行:)现在我做了一个切换,我的意思是,如果有更好的格式,你应该可以更容易地看到程序流程:)你读的代码比你写的要多10倍,所以好的可读性总是值得“更多的工作”。
onCreate(){
instance = this;
}
public static CoreApplication getGlobalApplicationContext() {

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

return instance;
}