我有一个MainActivity和一个扩展的DsiplayClass。在这个DisplayClass中,我想通过setContentView更改ContentView,但是我得到的只是一个NullPointerException。
请帮助我,并告诉我原因。
主要活动:
public class Main extends Activity {
DisplayClass display;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
display = new DisplayClass();
display.showMain();
}
}
DisplayClass:
public class DisplayClass extends Main {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
public void DisplayClass() {
}
public void showMain() {
setContentView(R.layout.mainmenu);
}
}
在设置“ setContentView(R.layout.mainmenu);”的行中导致NullPointerException。并在此行中“ display.showMain();”。
请帮我。
最佳答案
您到底想在这里做什么?您应该将setContentView(R.layout.mainmenu);
放在Main
类的onCreate()
方法中。完全删除DisplayClass
。
之所以得到空指针,是因为Activity
(DisplayClass
)实际上尚未“启动”。
public class DisplayClass {
public static showMain(Activity main) {
main.setContentView(R.id.layoutmain);
}
}
然后在
onCreate
Main
中的Activity
方法中...DisplayClass.showMain(this);