每次單擊按鈕時,我都想增加 i 的值
我已經嘗試過這段代碼,但它不起作用。
val textview = findViewById<TextView>(R.id.texttest)
var i = 10
bookbutton.setOnClickListener {
i
}
textview.text = "$i"
uj5u.com熱心網友回復:
您必須在偵聽器中設定文本:
bookbutton.setOnClickListener {
i
textview.text = "$i"
}
uj5u.com熱心網友回復:
您的偵聽器正在更新 - 的值,i但這沒有任何可見的效果,因為到那時為時已晚:您的 textview 中顯示的文本已經設定。
讓我們回顧一下事件的順序:
您的代碼運行。這將創建一個文本視圖和一個變數,在按鈕上設定一個偵聽器,并在文本視圖中設定文本。
在稍后的某個時間點,用戶可能會單擊該按鈕。這會呼叫監聽器,它會更新變數。
因此,當您的代碼設定偵聽器時,偵聽器直到稍后才會運行。它可能根本不運行,或者可能運行多次,這取決于用戶所做的事情,但在您在文本視圖中設定文本之前它不會運行。
因此,當您更新變數時,您需要一些方法來更新文本。最簡單的方法是在偵聽器中顯式執行它,例如:
bookbutton.setOnClickListener {
textview.text = "${ i}"
}
(還有其他方法——例如,一些 UI 框架提供了將變數“系結”到螢屏欄位的方法,以便這種更新自動發生。但它們往往要復雜得多;簡單的解決方案沒有任何問題。)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/487476.html
下一篇:“跳轉到訊息”按鈕
