我有一些 最终 变量的 Activity 。我将它们的值(假设它们都是字符串)提取到资源文件中。
问题:
如果我直接将它们分配给实例化(如下):private final String PREFERENCE_NAME = getResources().getString(R.string.preference_name);
我收到以下错误:Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
我明白这个问题;尚未调用 onCreate() 方法,这意味着我无法访问与上下文相关的方法 ( getResources()
)。
如果我想在 Activity 的 onCreate() 方法中分配值,则会收到错误 Cannot assign value to final variable 'PREFERENCE_NAME'
问题是: 如何从资源文件中分配我的最终变量?如果这是不可能的,那么解决方案的最佳实践是什么?
提前致谢。
最佳答案
在这种情况下,我认为最好的做法是多次调用资源。您仍然只需要在一个地方更改值,并且对 getResources()
的调用并不昂贵。