Почему происходит сбой моего приложения из-за исключения NullPointerException в моем классе ButtonManager? - PullRequest
0 голосов
/ 24 мая 2019

Я делаю небольшую игру-викторину, и я не хотел делать каждую функцию для кнопок в каждом действии, потому что не повторяйся.Но когда я запускаю свое приложение, оно вылетает с исключением из-за нулевого указателя.

Я попробовал Решение в нижней части, а также создал функцию в классе 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 голосов
/ 24 мая 2019

Похоже, вам не хватает некоторых фундаментальных концепций для Android.

Полагаю, вы просто хотите добавить в свою кнопку список прослушивания кликов.В этом случае вам вообще не нужен ваш класс диспетчера кнопок.

В своей деятельности вы можете просто добавить:

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()
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...