Arreglo 2D en Kotlin

¿Cómo se hace una matriz 2D Int en Kotlin? Estoy tratando de convertir este código a Kotlin:

int[][] states = new int[][] { new int[]{-android.R.attr.state_pressed}, // not pressed new int[] { android.R.attr.state_pressed} // pressed }; int[] colors = new int[] { foregroundColor, accentColor, accentColor }; ColorStateList myList = new ColorStateList(states, colors); 

Aquí hay un bash que probé, donde la primera matriz 2D no funcionó, pero obtuve la matriz 1D para trabajar:

  //This doesn't work: var states: IntArray = intArrayOf( intArrayOf(-android.R.attr.state_pressed), // not pressed intArrayOf(android.R.attr.state_pressed) // pressed ); //This array works: var colors: IntArray = intArrayOf( foregroundColor, accentColor, accentColor ); val myList: ColorStateList = ColorStateList(states, colors); 

Está tratando de poner sus IntArrays dentro de otra matriz para que sea bidimensional. El tipo de esa matriz no puede ser intArray, razón por la cual esto falla. Envuelva sus matrices iniciales con arrayOf lugar de intArrayOf .

 val even: IntArray = intArrayOf(2, 4, 6) val odd: IntArray = intArrayOf(1, 3, 5) val lala: Array<IntArray> = arrayOf(even, odd) 

Puede usar esta línea de código para una matriz de integers.

 val array = Array(row, {IntArray(column)}) 

Esta línea de código es bastante simple y funciona como una matriz 1D y también se puede acceder como la matriz 2D de Java.

Parece que estás intentando crear una ColorStateList en Kotlin. El código es un poco desorderado, intentaré mantenerlo legible:

 val resolvedColor = Color.rgb(214,0,0) val states = arrayOf( intArrayOf(-android.R.attr.state_pressed), intArrayOf(android.R.attr.state_pressed) ) val csl = ColorStateList( states, intArrayOf(resolvedColor, Color.WHITE) )