我试图用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,但之后它什么都不做。有人知道为什么这不起作用吗?
提前谢谢你,
尼古拉斯
答案 0 :(得分:0)
为了更新文本,需要在主线程上更新(而不是Schedulers.newThread()
)
添加:
.observeOn(AndroidSchedulers.mainThread())
应修复问题,并获取更新标签