我嘗試為 Android Studio 上的按鈕制作以下方法,當我運行時,應用程式崩潰。
MainActivity : AppCompatActivity() {
val button = findViewById(R.id.button) as Button
var count = 0
val textView = findViewById(R.id.textView) as TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener{
buttonAction()
}
}
fun buttonAction(){
count = count 1
textView.text = count.toString()
}
}
我很清楚,為了使按鈕作業,您需要將東西放入“button.setOnClickListener”部分(見下文)。但是,我想通過呼叫“button.setOnClickListener”中的方法來確保我的代碼盡可能整潔干凈,而不是將所有內容都放入該部分。
MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById(R.id.button) as Button
var count = 0
val textView = findViewById(R.id.textView) as TextView
button.setOnClickListener{
count = count 1
textView.text = count.toString()
}
}
}
第一個代碼是否有任何修復,或者我必須滿足于第二個代碼?
uj5u.com熱心網友回復:
class MainActivity : AppCompatActivity() {
private var count = 0
private var button: Button? = null
private var textView: TextView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button = findViewById(R.id.button)
textView = findViewById(R.id.textView)
button?.setOnClickListener {
buttonAction()
}
}
private fun buttonAction() {
count = 1
textView?.text = count.toString()
}
}
uj5u.com熱心網友回復:
您的應用程式崩潰的原因是您試圖通過呼叫 before 來分配(尚)不存在的視圖(按鈕和 textView)onCreate。
val button = findViewById(R.id.button) as Button
val textView = findViewById(R.id.textView) as TextView
override fun onCreate(savedInstanceState: Bundle?) { ...
只需將這些行放在onCreate后面setContentView(R.layout.activity_main)。
你可以把它想象成在見到你朋友之前試著和他握手。
關于使代碼干凈,我不會太擔心,您的第二個解決方案對于初學者來說已經足夠了。
不確定您是否了解Kotlin 課程中的 Android 基礎知識,但如果您一步一步地學習,它會對您有很大幫助。
只是為了給你一個答案,這是一個代碼
class MainActivity : AppCompatActivity() {
var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById(R.id.button) as Button
val textView = findViewById(R.id.textView) as TextView
button.setOnClickListener{
buttonAction()
textView.text = count.toString()
}
}
fun buttonAction(){
count = 1
}
}
這不是最流暢的解決方案,但正如我所說,它已經足夠好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480441.html
上一篇:我無法參考配接器
