簡體   English   中英

Android數據綁定? 調用重新創建活動后的問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM