Передача значений из другого действия в onCreate - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь создать настольную игру и хочу передать число размеров доски для другого действия.


    val colRow =return intent.getIntExtra(EXTRA_COLROW,0)

    private val boardCells = Array(colRow) { arrayOfNulls<Button>(colRow) }

    var board = Board(colRow)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)


        }

появилось сообщение об ошибке ниже

java .lang.NullPointerException: попытка вызвать виртуальный метод 'int android .content.Intent.getIntExtra (java .lang.String, int)' для пустой ссылки на объект

Я пытался поместить код намерения в функцию, но он также не работает

    val colRow =getColrow()

    fun getColrow():Int{
        return intent.getIntExtra(EXTRA_COLROW,0)
    }

Намерение getExtra работает только в методе onCreate? Если это так, как я могу передать значения на стороне создания? Помогите мне, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

попробуйте использовать EventBus framwork

упрощает связь между компонентами

разъединяет отправителей и получателей событий

хорошо работает с действиями, фрагментами и фоновые потоки

позволяют избежать сложных и подверженных ошибкам зависимостей и проблем жизненного цикла

делает ваш код проще

0 голосов
/ 03 апреля 2020

Сохраните дополнительное значение в переменной

private lateinit val colRow: Int
private lateinit val boardCells: Array
private lateinit val board: Board

override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     setContentView(R.layout.activity_main)
     colRow = intent.getIntExtra(EXTRA_COLROW,0)
     initBoard()
}

private fun initBoard(){
     boardCells = Array(colRow) { arrayOfNulls<Button>(colRow) }
     board = Board(colRow)
}

, используйте его в любом месте этого действия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...