我有一个 MainActivity 和一个扩展的 DsiplayClass。在这个 DisplayClass 之外,我想通过 setContentView 更改 ContentView,但我得到的只是一个 NullPointerException。
请帮助我并告诉我原因。
主要 Activity :
public class Main extends Activity {
DisplayClass display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
display = new DisplayClass();
display.showMain();
}
}
显示类:
public class DisplayClass extends Main {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void DisplayClass() {
}
public void showMain() {
setContentView(R.layout.mainmenu);
}
}
NullPointerException 是在我设置“setContentView(R.layout.mainmenu);”的行中引起的并在这一行中“display.showMain();”。
请帮助我。
最佳答案
你到底想在这里做什么?您应该将 setContentView(R.layout.mainmenu);
放在 Main
类的 onCreate()
方法中。完全删除 DisplayClass
。
您获得空指针的原因是 Activity
(DisplayClass
) 实际上尚未“启动”。
public class DisplayClass {
public static showMain(Activity main) {
main.setContentView(R.id.layoutmain);
}
}
然后在 Main
Activity
的 onCreate
方法中...
DisplayClass.showMain(this);
关于java - setContentView 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976399/