0

我正在尝试用 Kotlin 编写一个 Android 应用程序。现在,我想在 ActionBar 中显示一个计数器。我为此添加了一个名为 show_timer 的项目。每一秒,它应该加一:

override fun onWindowFocusChanged(hasFocus: Boolean) {
    val item = findViewById(R.id.show_timer) as ActionMenuItemView
    PublishSubject.interval(1, java.util.concurrent.TimeUnit.SECONDS, Schedulers.newThread())
            .subscribeBy(onNext = {item.text = it.toString()})

    super.onWindowFocusChanged(hasFocus)
}

但不知何故,这不起作用。它将默认文本更新为 0,但之后它什么也不做。有人知道为什么这不起作用吗?

先感谢您,

尼克拉斯

4

1 回答 1

0

为了更新文本,需要在主线程(不是那个Schedulers.newThread())上更新

添加:

.observeOn(AndroidSchedulers.mainThread())

应该解决问题,并让标签更新

于 2017-03-13T22:30:09.493 回答