簡體   English   中英

為什么我的警報對話框第二次崩潰使我的應用程序崩潰?

[英]Why is my alert dialog crashing my app the second time it appears?

當用戶單擊具有正確游戲答案的按鈕時,我將調用一個警報對話框。 第一次調用該警報時,屏幕上的警報就很好顯示,但是,如果用戶第二次獲得正確的答案,則應用程序將崩潰並告訴我“ java.lang.IllegalStateException:指定的孩子已經有一個父母。您必須調用首先在孩子的父級上刪除。”

//this is my alert
val builder = AlertDialog.Builder(this)
builder.setView(layoutInflater.inflate(R.layout.alert_layout, null))

//this is the button being clicked
btnClickMe1.setOnClickListener {
        if (correctAnswer == 1) {
            score++
            updateUI()
            builder.show()
        }
        updateUI()
    }

我只希望警報根據需要顯示多次,而不會導致應用崩潰

您的AlertDialog初始化部分僅被調用一次,而您的監聽器則在您每次按下該按鈕時被調用。 因此導致了該錯誤。

每次單擊按鈕時,都必須初始化對話框。 所以解決辦法是。

//this is the button being clicked
btnClickMe1.setOnClickListener {
        if (correctAnswer == 1) {
            val builder = AlertDialog.Builder(this)
            builder.setView(layoutInflater.inflate(R.layout.alert_layout, null))

            score++
            updateUI()
            builder.show()
        }
        updateUI()
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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