java - setContentView 抛出 NullPointerException

标签 java android class nullpointerexception setcontentview

我有一个 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 ActivityonCreate 方法中...

DisplayClass.showMain(this);

关于java - setContentView 抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22976399/

相关文章:

c++ - 在类之间共享私有(private)数据和方法

java - JTabbedPane 中禁用的选项卡上的单击事件

java - NativeScript + VirtualBox/VMWare 包含 Mac 操作系统

java - Firebase onDataChanged 调用了很多次(没有更新),有时使用空值

c++ - 确定类静态变量的总大小?

c++ - 如何在类中正确使用结构?

Java无锁性能JMH

java - 控制台中的 HashMap 输出

android - Flutter中的flutter_downloader下载问题

android - "PowerManger.FULL_WAKE_LOCK is deprecated"是什么意思?