前提・実現したいこと
簡単なボードゲームを作りたいと考えております。そこで別のアクティビティから数値(colRow)を渡してボードの大きさを変えられるようにしたいです。
発生している問題・エラーメッセージ
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.content.Intent.getIntExtra(java.lang.String, int)' on a null object reference
該当のソースコード
kotlin
1 2 val colRow =return intent.getIntExtra(EXTRA_COLROW,0) 3 4 private val boardCells = Array(colRow) { arrayOfNulls<Button>(colRow) } 5 6 var board = Board(colRow) 7 8 override fun onCreate(savedInstanceState: Bundle?) { 9 super.onCreate(savedInstanceState) 10 setContentView(R.layout.activity_main) 11 12 loadBoard() 13 14 private fun loadBoard() { 15 16 for (i in boardCells.indices) { 17 for (j in boardCells.indices) { 18 boardCells[i][j] = Button(this) 19 boardCells[i][j]?.layoutParams = GridLayout.LayoutParams().apply { 20 rowSpec = GridLayout.spec(i) 21 columnSpec = GridLayout.spec(j) 22 width = 285 - (21*colRow) 23 height = 285 - (21*colRow) 24 bottomMargin = 5 25 topMargin = 5 26 leftMargin = 5 27 rightMargin = 5 28 } 29 layout_board.addView(boardCells[i][j]) 30 boardCells[i][j]?.setOnClickListener(CellClickListener1(i, j)) 31 boardCells[i][j]?.setBackgroundColor( 32 ContextCompat.getColor( 33 this, 34 R.color.colorPrimary 35 ) 36 ) 37 } 38 } 39 } 40 41 }
試したこと
intentをメソッド内に入れてみましたが、同じエラーが出ました。
kotlin
1 val colRow =getColrow() 2 3 fun getColrow():Int{ 4 return intent.getIntExtra(EXTRA_COLROW,0) 5 } 6 7 8
intent の値を onCreate 以外で受け取る方法あるいは、private val boardCells配列へonCreateから値を送る方法をご存じでしたら教えてください。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー