在 onCreate 方法之外从 xml 文件获取字符串资源

Getting string resource from xml file outside onCreate method

我正在尝试使用 string.xml 文件中的 String 作为键值对中的键。但是,当我尝试在 onCreate() 方法之前声明变量时,程序崩溃了。因此,如果我使用以下代码,则会出现错误:

    public class MainActivity extends ActionBarActivity {
        String MAX_SQUAT = getResources().getString(R.string.max_squat);
        protected void onCreate(Bundle savedInstanceState) {
        //blah blah blah
    }
    }

而当我在 onCreate() 方法中声明 MAX_SQUAT 时,没有问题。我想在 onCreate() 方法之外声明它,所以我不需要在其他方法中定义它

你需要一个Context来得到resources(你可以看到in the DocsgetResources()Context的一个方法)。由于 ContextonCreate() 之前不可用,您不能这样做。

您可以在之前 onCreate()声明变量,但是您不能在之后 onCreate()初始化它已被调用。

例如

public class MainActivity extends ActionBarActivity {

    String MAX_SQUAT;

    protected void onCreate(Bundle savedInstanceState) {
        // super call, set content view
        // now you can get the string from strings.xml safely
        MAX_SQUAT = getResources().getString(R.string.max_squat);
    }

以这种方式将其声明为成员变量但在 onCreate() 中对其进行初始化将允许您在整个 class 期间使用它并防止其崩溃。