我是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
开始。当我删除这些行时,活动就会正确启动。
导致这种强行关闭的原因是什么?
由于
答案 0 :(得分:6)
在活动类被“正式”实例化之前,您无法调用getResources()
(它是一个实例方法,此时您还没有实例)。将String数组初始化移动到onCreate()
。