繁体   English   中英

从Android资源中获取静态内容的更好方法?

[英]Better way to get static content from resources in android?

我编写了一个名为DateUtils的类,在该类中我试图像这样通过静态字段获取资源

    public class DateUtils{
    private static String value;

    public static string getValue(Context context){
            if (value== null) {
            value= context.getResources().getString(R.string.my_value);
            }
            return value; }
    }

但是我找到了答案。 如何从静态上下文中获取资源内容? 他们在其中创建了一个应用程序类,并获取该应用程序类的引用以为静态字段分配值。

这样的缺点是,不能保证在某些静态初始化代码尝试获取Context对象之前,将已调用非静态onCreate()。 这意味着您的调用代码将需要准备好处理null值,这将使这个问题的要点失效。参考在Android上获取“上下文”的静态方法?

我的问题是哪种是初始化静态字段的更好方法?

我的问题是哪种是初始化静态字段的更好方法?

都不行 摆脱static领域。

您的应用程序需要处理用户在您的进程仍在运行时更改其语言的情况。 您需要在更适当的位置检索此字符串资源,以便在进行配置更改时开始使用正确的字符串。 就目前而言,对于您的实现(无论如何填充static字段),您永远都不会更改此字符串的语言,因此在某些情况下该字符串将是错误的。

如果答案是“永远不会翻译此字符串”,请摆脱字符串资源,并将字符串作为final static字段放入Java代码中。

暂无
暂无

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

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