首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >观察ArrayDeque的内容

观察ArrayDeque的内容
EN

Stack Overflow用户
提问于 2019-04-01 19:43:35
回答 1查看 69关注 0票数 0

我有一个ArrayDeque类型的MutableLiveData。我正在试着观察它。当我第一次给它赋值(创建ArrayDeque)时,它是有效的,但我尝试做的是观察内容的变化,即何时添加新条目或何时删除条目。

代码语言:javascript
复制
var moveHistory = MutableLiveData<ArrayDeque<Move>>()

..

    moveHistory.value = ArrayDeque<Move>()  <<--- this fires
    moveHistory.value?.addFirst(MontanaMoveStandard(from, to)) <<- this doesn't fire

这是我的观察代码:

代码语言:javascript
复制
        moveHistory.observe(this, Observer {
            moveHistory -> undoButton?.isEnabled = moveHistory.size > 0
    })
EN

回答 1

Stack Overflow用户

发布于 2019-04-02 05:50:41

这就是我最后所做的。

我创建了自己的类MoveHistory,它扩展了MutableLiveData并对其执行操作。我向它添加了我使用的方法(addFirst和pollFirst),然后按照Luksprog的建议为它自己重新赋值

这就是我最后学到的课程:

代码语言:javascript
复制
class MoveHistory(): Serializable, MutableLiveData<ArrayDeque<Move>>(){
    init {
        value = ArrayDeque<Move>()
    }

    fun addFirst(move: Move) {
        value?.addFirst(move)
        value = value
    }
    fun pollFirst(): Move {
        var move = value?.pollFirst()
        value = value
        return move!!
    }
}

现在,我要做的就是在该类的一个实例上注册我的观察者,并使用这些方法来添加和删除。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55454306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档