簡體   English   中英

無法為Kotlin / Anko DSL定義的ImageView設置圖像

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

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