java - Android 从静态上下文中获取 fragment 中的资源

标签 java android static resources

我看了here尝试解决我的问题。它很相似,但我使用 fragment ,所以当我需要上下文时,我通常需要调用 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();
}
}

在我调用的一个 fragment 中

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

switch(errorCode) 和 3 个案例就是您要查找的内容。

最后提示:改进格式!

关于java - Android 从静态上下文中获取 fragment 中的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12698675/

相关文章:

java - 我该如何在 Scala 中做到这一点?

java - 构建依赖于 Android 项目 Gradle 的 Java 库

java - 如何为一个按钮添加多个操作

android - 如何动画缩放相对布局(其中包含许多布局和 ImageViews 里面)

java - 共享一个实例,但为每个新进程创建一个新实例

java - 进入main方法后执行的静态 block

java - 如何在不使用替换方法的情况下从列表中删除逗号

java - JPA @ElementCollection 注释是否始终产生一对多关系?

android - 通过 setBackgroundResource 设置背景后,setColorFilter 不起作用

static - 使用 PowerMock 通过 @InjectMocks 模拟静态属性