getResources和String Array强制关闭

时间:2011-06-09 03:11:31

标签: android arrays

我是android编程的新手,自从我完成任何Java编程以来已经有好几年了。

我在XML strings.xml中声明了一个字符串数组:

<string-array name="questionSet1_array">
    <item>Question Introduction</item>
    <item> Question1</item>
    <item>Question 2</item>
</string-array>
然后我开始一个名为Coastal的活动。然后,我按下按钮开始第二个活动,开始活动Foreshore

在活动Foreshore中,我发出以下声明:

import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Foreshore extends Activity {

    //globally declare parameters
    private TextView text;
    private EditText answerEntry;
    private Button next;
    Resources res = getResources();
    String [] theQuestions = res.getStringArray(R.array.questionSet1_array);
    //private String theAnswers[];
    //private String answerPasser;
    private int length;
    private int i=0;

Resources res ...String[] ...会导致程序强制关闭,并且不会让活动Foreshore开始。当我删除这些行时,活动就会正确启动。

导致这种强行关闭的原因是什么?

由于

1 个答案:

答案 0 :(得分:6)

在活动类被“正式”实例化之前,您无法调用getResources()(它是一个实例方法,此时您还没有实例)。将String数组初始化移动到onCreate()