在 Android Jetpack Compose 中,界面状态是不可变的,因此当需要更改状态时,需要创建新的状态并将其传递回组合函数。以下是代码示例:
@Composable
fun MyScreen(my2DList: List>) {
var updatedList by remember { mutableStateOf(my2DList) }
Column {
Button(onClick = {
// 新建一个更新后的列表
val newList = mutableListOf>()
for (i in 0 until updatedList.size) {
val subList = mutableListOf()
for (j in 0 until updatedList[i].size) {
subList.add(updatedList[i][j] + "_updated")
}
newList.add(subList)
}
// 更新状态
updatedList = newList
}) {
Text(text = "Update 2D List")
}
updatedList.forEach { row ->
Row {
row.forEach { item ->
Text(text = "$item ")
}
}
}
}
}
在此示例中,我们使用 mutableStateOf
为 my2DList
创建了一个可变状态变量 updatedList
。当用户点击 "Update 2D List" 按钮时,我们新建一个更新后的 List
并将其分配给 updatedList
,这将导致 UI 自动重新组合以反映新的状态。
请注意,在更复杂的实现中,您可能需要使用更高级的工具来管理状态,如 ViewModel 或 Redux。