android - 填充并发出 StateFlow 列表

标签 android kotlin kotlin-stateflow

我想使用 StateFlow。但是现在,我找不到任何可以帮助我的讲座。
我面临一个问题:
首先,我有一个包含字符串列表的单例,我想要一些“容易”理解的东西,即使它不是现在的目标。目的是用字符串填充和发出列表(稍后它将是一个复杂的对象)。

class CustomStateFlow() {
    private val _custom = MutableStateFlow(emptyList<String>())
    val custom: StateFlow<List<String>> = _custom

    fun addString(string: String) {
        val tempList = _custom.value.toMutableList()
        tempList.add(string)
        _custom.value = tempList
}
这似乎可行,但我不喜欢临时列表......没有,我无法在我的 fragment 中触发自定义的“收集”。
有没有办法在不使用 tempList 的情况下实现这一点?
谢谢

最佳答案

如果您不想使用临时变量来将新项目添加到可变列表中,您可以使用 加号 (+) 运算符函数 .这样做会为您返回具有附加值的新列表(不可变),您可以进一步使用。
所以伪代码变成这样:val newList = oldMutableList + newItem同样,您可以从列表中删除项目,例如 val newList = oldMutableList - itemToRemove阅读更多关于 kotlin 集合上的操作符函数 here !

关于android - 填充并发出 StateFlow 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65001729/

相关文章:

android - MutableStateflow 值与更新与发射

android - jetpack compose 中未显示流量数据

java - TwoLineListItem 源代码

安卓平台版本

Android:当按下 ddms "hprof dump"时,Memory Analyzer eclipse 插件 (1.1) 不会自动启动

spring-boot - 如何并行调用多个Spring Webclient并等待结果?

java - 使用库时出现 ClassNotFoundException 异常

android - 如何知道Android中录音的长度

java - 在Android中未绘制自定义 View

android - 在 Composable 中收集转换后的 StateFlow