我有一个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

之所以得到空指针,是因为ActivityDisplayClass)实际上尚未“启动”。

public class DisplayClass {
    public static showMain(Activity main) {
        main.setContentView(R.id.layoutmain);
    }
}


然后在onCreate Main中的Activity方法中...

DisplayClass.showMain(this);

08-19 00:37