Android 启动新活动时出现NullPointerException
当我尝试使用意图通过另一个活动打开此活动时,应用程序将关闭。事实上,我正在尝试制作一款类似测验的应用程序,它可以显示问题。 XML: 我的静态类:Android 启动新活动时出现NullPointerException,android,text,android-activity,stringbuilder,Android,Text,Android Activity,Stringbuilder,当我尝试使用意图通过另一个活动打开此活动时,应用程序将关闭。事实上,我正在尝试制作一款类似测验的应用程序,它可以显示问题。 XML: 我的静态类: public class QAs { public static final int MAX_QAS = 3; public static String[] strAs; public static String[] strQs; QAs() { strQs = new String[3];
public class QAs {
public static final int MAX_QAS = 3;
public static String[] strAs;
public static String[] strQs;
QAs() {
strQs = new String[3];
strAs = new String[3];
strQs[0] = "What is a your name?";
strAs[0] = "xyz";
strQs[1] = "abcd?";
strAs[1] = "keyword";
strQs[2] = "abcd?";
strAs[2] = "aabbccdd";
}
}
以下是错误:
Error :
09-07 17:52:29.226: W/dalvikvm(23855): threadid=1: thread exiting with uncaught exception (group=0x40ce0450)
09-07 17:52:29.226: E/AndroidRuntime(23855): FATAL EXCEPTION: main
09-07 17:52:29.226: E/AndroidRuntime(23855): java.lang.NullPointerException
09-07 17:52:29.226: E/AndroidRuntime(23855): at com.ankur.interviewquestions.CQAct.getData(CQAct.java:50)
09-07 17:52:29.226: E/AndroidRuntime(23855): at com.ankur.interviewquestions.CQAct.updateCounter(CQAct.java:44)
09-07 17:52:29.226: E/AndroidRuntime(23855): at com.ankur.interviewquestions.CQAct.onClick(CQAct.java:65)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.view.View.performClick(View.java:4129)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.view.View$PerformClick.run(View.java:17143)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.os.Handler.handleCallback(Handler.java:615)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.os.Handler.dispatchMessage(Handler.java:92)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.os.Looper.loop(Looper.java:137)
09-07 17:52:29.226: E/AndroidRuntime(23855): at android.app.ActivityThread.main(ActivityThread.java:4802)
根据您的logcat输出,您在这一行(复杂得可笑)代码中得到了一个NullpointerException:
String getData() {
return new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf(new StringBuilder(String.valueOf("\n")).append("Question ").append(1 + this.m_iCurrIndex).append(":\n").toString())).append(QAs.strQs[this.m_iCurrIndex]).toString())).append("\n\n").toString())).append("Answer:\n").toString())).append(QAs.strAs[this.m_iCurrIndex]).toString() + "\n\n";
}
这就是启动此活动时应用程序崩溃的原因。这次事故与文本切换器无关
因此,请检查是否有任何变量为空。
例如:
在哪里
QAs.strQs[this.m_iCurrIndex]
来自哪里
更新:
您的问题是,静态类的构造函数从未被调用,因此您的数组是空的。
我建议您使用initialize方法来初始化阵列:
public static void initialize() {
strQs = new String[3];
strAs = new String[3];
strQs[0] = "What is a your name?";
strAs[0] = "xyz";
strQs[1] = "abcd?";
strAs[1] = "keyword";
strQs[2] = "abcd?";
strAs[2] = "aabbccdd";
}
然后,在活动中调用getData()之前(例如在onCreate()中),调用:
发布错误您的gettingNull指针异常通常对初学者来说是由两个静态数组strq和stra组成的类。
public class QAs{public static final int MAX_QAs=3;public static String[]strAs;public static String[]strQs;QAs(){strQs=new String[3];strAs=new String[3];strQs[0]=“您的名字是什么?”;strAs[0]=“xyz”;strQs[1]=“abcd?”;strAs[1]=“关键字”;strQs[2]=“abcd?”;strAs[2]=“aabbccdd”;}}
Hi.。在屏幕下方的某些视图文本中,是否可以滚动它?
QAs.strQs[this.m_iCurrIndex]
public static void initialize() {
strQs = new String[3];
strAs = new String[3];
strQs[0] = "What is a your name?";
strAs[0] = "xyz";
strQs[1] = "abcd?";
strAs[1] = "keyword";
strQs[2] = "abcd?";
strAs[2] = "aabbccdd";
}
QAs.initialize();