繁体   English   中英

Android从静态上下文中分段获取资源

[英]Android getting resources in fragments from static context

在这里寻找解决问题的方法。 相似,但是我使用片段,因此当我需要上下文时,通常需要调用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);

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

你能帮我做对吗?

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

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变量。

您正在寻找一个switch(errorCode)和3种情况。

最后提示:改善格式!

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

[第1步]

public class CoreApplication extends Application {

private static CoreApplication instance; 
}

[第2步]

onCreate(){
instance = this;
}

[step3]

public static CoreApplication getGlobalApplicationContext() {

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

return instance;
}

[第四步]
在您的片段中调用getGlobalApplicationContext()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM