Activity.setTitle在runOnUiThread块中不起作用

时间:2019-02-06 10:56:01

标签: android android-actionbar android-titlebar

我需要从我的房间数据库中通过后台线程获取一个Note()对象,并将便笺的标题设置为我的活动标题,但是title = note.title不起作用,并且我看到了我的应用程序名称在工具栏中。我也尝试过supportActionBar?.titletoolbar.title,但都没有解决问题。我确定数据库可以为我提供正确的数据,而且我不知道问题出在哪里。任何帮助表示赞赏。

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_show_note)
    setSupportActionBar(toolbar)
    supportActionBar?.setDisplayHomeAsUpEnabled(true)
}

override fun onResume() {
    super.onResume()
    intent.extras?.also {
        val id = it.getInt(ID_EXTRA)
        Thread(Runnable {
            note = db.noteDao().getNote(id)
            runOnUiThread {
                title = note.title
                tvShowNote.text = note.note
                tvShowTime.text = note.time.format()
            }
        }).start()
    }
}

2 个答案:

答案 0 :(得分:1)

您必须设置类似这样的内容。

supportActionBar!!.title = title //your_title_put_here

在没有runOnUiThread的情况下是否尝试过相同的操作。

答案 1 :(得分:0)

setTitle是操作栏的方法,您需要使用操作栏的实例来设置其属性。将工具栏设置为支持操作栏后,尝试使用以下代码。

val actionBar = supportActionBar
actionBar!!.title = "your_title"