我試圖訪問資料類( 代碼在下面。 Content.kt PictureActivity.kt uj5u.com熱心網友回復: Kotlin中的lateinit關鍵字為你提供了一個稍后初始化的選項,但請確保你在使用前進行初始化。
要檢查該變數是否被初始化,你可以使用下面的方法: 在你的案例中,你必須從某個地方獲得資料(也許是網路呼叫)來填充content資料類,然后你就可以使用它了。 uj5u.com熱心網友回復: 你需要先初始化content變數,然后才可以使用它
標籤:Content),我想使用PictureActivity中的物件(val isSelected: Boolean? 然而,它導致了UninitializedPropertyAccessException: lateinit property content has not been initialized。你知道如何解決這種情況嗎?我使用了latinit,但我甚至不知道使用latinit是否是訪問資料類(Content)的最佳方式。如果你知道其他的方法來訪問它,請告訴我。
data class Content(
val id: Int,
val text: 字串。
val isSelected: Boolean?
val url: 編碼:字串?
)
class PictureActivity : BaseActivity( ) {
private lateinit var binding。圖片活動系結
private lateinit var content: 內容
override fun onCreate(servedInstanceState: Bundle? ){
super.onCreate(s savedInstanceState)
binding = PictureActivityBinding.inflate(layoutInflater)
setContentView(binding.root)
if(content.isSelected!!){
binding.button1.setOnClickListner{
startContentDownload(content.url!)
return@setOnClickListener。
}
}
private fun startContentDownload(url: String) {
//download image {
}
}
if(:content.isInitialized) {
//把你的代碼放在這里。
}
content = Content(...)
