[英]Trouble setting an image for a Kotlin/Anko DSL defined ImageView
我正在嘗試使用Kotlin和Anko的DSL創建警報對話框,允許用戶選擇圖像,然后將其加載到ImageView中。 現在,我只是想使ImageView正常工作,所以我單擊了按鈕,以使用Picasso從URL加載預選的圖像。
單擊警報對話框中的按鈕時,出現此錯誤:
kotlin.TypeCastException:無法將null強制轉換為非null類型android.widget.ImageView
我猜測由於某種原因未通過findViewById加載ImageView。 有誰知道為什么會這樣嗎? 我猜Anko的DSL有一些我不知道的怪異行為。
fab.setOnClickListener { view ->
alert {
title = "New Post"
customView {
verticalLayout {
val subject = editText {
hint = "Subject"
}
imageView {
id = R.id.picked_image
}
linearLayout {
gravity = Gravity.CENTER
button("Choose Photo") {
onClick {
Picasso.with(this@MainActivity)
.load("http://SomeUrl/image.jpg")
.into(findViewById(R.id.picked_image) as ImageView)
}
}
button("Choose Image") {}
}
positiveButton("Post") { }
negativeButton("Cancel") {}
}
}
}.show()
您可以像這樣獲取對ImageView
的引用,而不必完全處理ID:
val iv = imageView()
...
onClick {
Picasso.with(this@MainActivity)
.load("http://SomeUrl/image.jpg")
.into(iv)
}
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.