java Android应用程序崩溃NullPointerException
我已经做了搜索,似乎是一个个案的基础上,什么原因造成这一点。不过,真正理解这一点的人很可能会不同意
我的按钮从主屏幕进入其他活动,效果很好,与不起作用的按钮的唯一区别是,它实际上是从另一个类/变量中提取一个类/变量。java文件,所以我确信我没有正确地实现它
这是一个单身班:
全球。爪哇
//Constructor
//
protected Global() {
getInstance();
}
//Singleton Method
//
public static Global getInstance() {
if(instance == null) {
initialize();
instance = new Global();
}
return instance;
}
我有几个(静态)类结构(我使用术语结构,因为我主要是C++程序,而我是,它们是什么),它们放在全局文件/类中,以及这个数组,它保存程序的所有数据{{CD1>}/P>
从getInstance()
(Singleton方法)调用的initialize();
函数只是将数据填充到questionStruct[]
数组中
我有一个返回字符串的方法
public static String getQ(int q){
return questions[q].q;
}
在公园里。按下按钮调用的java文件,我有placeData();
只是为了测试一下,在该函数中:
public void placeData() {
String testString = ("Testing Text: " + Global.getQ(3));
TextView Q = (TextView) findViewById(R.id.testingText);
Q.setText(testString);
}
最后。。。有希望地应该显示在XML文件中的文本视图:
<TextView
安卓:id="@+id/testingText"
安卓:layout_width="fill_parent"
安卓:layout_height="wrap_content" />
这是我的官方错误,我相信是崩溃的指示器,只有当我按下按钮初始化这个活动时才会发生
java.lang.RuntimeException: Unable to start activity ComponentInfo{godwin.com.study/godwin.com.study.practice}: java.lang.NullPointerException: Attempt to read from field 'java.lang.String godwin.com.study.Global$questionStruct.q' on a null object reference
想法
编辑:
类(类似于C++中的结构)内部的全局。爪哇
class answerStruct
{
String a;
boolean status;
}
//Structure for Questions
//
class questionStruct
{
String q;
answerStruct[] answer = new answerStruct[TOTAL_ANSWERS];
}
“initialize()”函数:
public static void initialize() {
questions[0].q = "Question # 1";
questions[0].answer[0].a = "Q1A1";
questions[0].answer[0].status = true;
questions[0].answer[1].a = "Q1A2";
questions[0].answer[1].status = false;
...And so on...Forever
}
# 1 楼答案
在Java中分配对象数组时,如下所示:
您只是分配一个对象引用数组,实际上并没有分配对象本身。这就像是在C++中分配了一组指针,但是它们没有指向任何东西。p>
在initialize()函数的顶部,您可以分配所有questionStruct对象,以及嵌套for循环中每个对象的答案,如下所示:
然后,您可以像现在这样遍历并初始化结构中的所有字段