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

时间:2015-05-27 20:15:37

标签: android android-resources

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

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

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

1 个答案:

答案 0 :(得分:3)

您需要Context才能获得resources(正如您所看到的那样in the Docs getResources()Context的方法。由于Context之前onCreate()不可用,因此您无法执行此操作。

您可以在 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()中初始化它将允许您在整个班级中使用它并防止崩溃。