我这里有一个 Android 应用程序的某些部分无缘无故地崩溃了。
RL0 恰好是一些在 XML 中定义的 LinearLayout,它已经包含了一些其他不相关的东西。老实说,我主要使用 C++,所以我最初可能不太了解为什么有些事情在 android 中有很大不同,但我正在努力。关于如何解决该崩溃的任何帮助? 错误消息指出 NullPointerException。 谢谢。
public class Osteoporoza extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_osteoporoza);
LinearLayout RL0=(LinearLayout)findViewById(R.id.RL0);
page[] pages=new page[10];
RL0.addView(pages[0].pageLL0);//doesn't crash without this line, yet i need to have some way of adding n objects that follow a pattern, i.e. a class.
class page
{
public LinearLayout pageLL0;
public ScrollView pageUpperScroll1;
public TextView pageTextView2;
public ScrollView pageLowerScroll1;
public LinearLayout pageAnswerButtonLL2;
public Button AnswerButton3_1;
public Button AnswerButton3_2;
public Button AnswerButton3_3;
public Button AnswerButton3_4;
page()
{
pageAnswerButtonLL2.addView(AnswerButton3_1);
pageAnswerButtonLL2.addView(AnswerButton3_2);
pageAnswerButtonLL2.addView(AnswerButton3_3);
pageAnswerButtonLL2.addView(AnswerButton3_4);
pageLowerScroll1.addView(pageAnswerButtonLL2);
pageUpperScroll1.addView(pageTextView2);
pageLL0.addView(pageUpperScroll1);
pageLL0.addView(pageLowerScroll1);
}
}
最佳答案
默认情况下,Object
数组中的所有元素都是null
。
即创建数组时:
page[] pages = new page[10];
您只设置数组的大小,不设置数组本身内的任何实例,因此每个元素都将是null
。要实例化您需要使用的每个元素:
for (int i=0; i < pages.length; i++) {
pages[i] = new page();
}
注意 Java 命名约定表明类名以大写字母开头,例如
Page[] pages = new Page[10];
关于java - 添加 View 数组会使 Android 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994115/