为什么我的App在ButtonManager类中出现NullPointerException崩溃?

时间:2019-05-24 18:46:46

标签: android kotlin nullpointerexception

我正在做一个小型测验游戏,我不想在每个活动中都为按钮做每个功能,因为不要重复自己。但是,当我启动我的应用程序时,它崩溃并出现空指针异常。

我在底部尝试了解决方案,并在ButtonManager类中创建了一个函数,在该类中,我有一个String作为构造函数参数,并在上述函数中对其进行了转换。

这是我的ButtonManager类的样子:

class ButtonManager(buttonName: Int) : AppCompatActivity() {

    val button: Button = findViewById(buttonName)

    fun quitGame(){

        finish()
    }
}

这就是我的活动中的函数调用:

ButtonManager(R.id.quitGameButton).button.setOnClickListener {
    ButtonManager(R.id.quitGameButton).quitGame()
}

这是错误代码:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window$Callback android.view.Window.getCallback()' on a null object reference

1 个答案:

答案 0 :(得分:0)

好像您缺少android的一些基本概念。

我假设您只是想在按钮上添加一个Clicklistener。在这种情况下,您根本不需要按钮管理器类。

在“活动”中,您只需添加:

class MyActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?){

        setContentView(R.layout.your_layout) // xml layout with a Button with android:I'd=" @+I'd/quitGameButton"

        val button: Button = findViewById(R.id.quitGameButton)
        button.onClickListener{
                finish()
        }
    }
}