如何显示二维数组在网格视图与Kotlin?



我想在网格中表示一个二维数组,其中包含一些数据,就像棋盘一样。比如我们有这样一个2d数组:

val nums = arrayOf(
arrayOf(0, 0, 0, 0, 1),
arrayOf(0, 0, 0, 1, 1),
arrayOf(0, 0, 1, 1, 1),
arrayOf(0, 0, 0, 1, 1),
arrayOf(0, 0, 0, 0, 1)
)

我的问题是我如何用网格视图显示它,什么是最好的方法。我也很乐意看到一些例子。我还是Kotlin的新手,有些事情有点令人困惑。我试着寻找类似的解决方案,但没有更接近我的问题。

val nums = arrayOf(
arrayOf(0, 0, 0, 0, 1),
arrayOf(0, 0, 0, 1, 1),
arrayOf(0, 0, 1, 1, 1),
arrayOf(0, 0, 0, 1, 1),
arrayOf(0, 0, 0, 0, 1)
)

将2D数组转换为List

val yourList = ArrayList<String>()
var numOfRow : Int
nums.forEach{ col ->
numOfRow = col.size() 
col.forEach { row -> {
yourList.add(row)
}
}

用Grid Layout Manager创建一个recycle Adapter的实例

val adapter = YourAdapter(yourList)
yourRecyclerView.adapter = adapter
yourRecyclerView.layoutManager = GridLayoutManager(this, numOfRow)

最新更新