[英]Android data binding? issue after calling recreate activity
首先,我不確定這是否是數據綁定問題,這只是猜測。 請忽略它。 問題如下:
在我的MainActivity.kt
中,我使用 DataBinding 如下:
class MainActivity: BaseActivity(){
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
binding = DataBindingUtil.setContentView(this, R.layout.activity_main)
...
binding.someText.text = "A text"
}
...
}
BaseActivity.kt
擴展了AppCompatActivity()
。 現在,單擊更改用戶區域設置(和應用程序語言)的按鈕后,我通過調用MainActivity.kt
中的recreate()
重新創建活動。 並且用戶區域設置更改,應用程序的語言更改,所以這里沒有問題。
但是,在重新創建之后,即使調用了onCreate
方法並設置了值, someText
的值也會變為空字符串(我通過調試觀察到了這一點)。 我的問題是什么可能導致someText
的值恰好是一個空字符串,為什么沒有設置它?
我找到了以下解決方案,以防其他人遇到同樣的問題。
在我的onCreate()
方法中,我只需在我的主布局上運行post()
方法,並使用一個將我的數據加載到 UI 上的操作。 通過這種方式,我只是確保在創建最外面的視圖之后加載數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.