我有一些 最终 变量的 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() 的调用并不昂贵。

10-08 16:51