Android Studio:你是如何用 Kotlin 在按下按钮时创建一个方法的?
Android Studio: How do you make a method when pressing a button with Kotlin?
我已经尝试为 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()
}
}
}
第一个代码是否有任何修复,或者我是否必须满足于第二个代码?
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()
}
}
您的应用程序崩溃的原因是您试图通过在 onCreate
.
之前调用它们来分配(尚)不存在的视图(按钮和文本视图)
val button = findViewById(R.id.button) as Button
val textView = findViewById(R.id.textView) as TextView
override fun onCreate(savedInstanceState: Bundle?) { ...
只需将此行放在 setContentView(R.layout.activity_main)
之后的 onCreate
内。
你可以把它想象成在见到你朋友之前试着握他的手。
关于让代码干净,我不会太担心,你的第二个解决方案对初学者来说已经足够好了。
不确定您是否知道Android Basics in Kotlin course,但如果您按部就班地进行,它会对您有很大帮助。
为了给你一个答案,这里有一个代码
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
}
}
这不是最流畅的解决方案,但正如我所说,它已经足够好了
我已经尝试为 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()
}
}
}
第一个代码是否有任何修复,或者我是否必须满足于第二个代码?
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()
}
}
您的应用程序崩溃的原因是您试图通过在 onCreate
.
val button = findViewById(R.id.button) as Button
val textView = findViewById(R.id.textView) as TextView
override fun onCreate(savedInstanceState: Bundle?) { ...
只需将此行放在 setContentView(R.layout.activity_main)
之后的 onCreate
内。
你可以把它想象成在见到你朋友之前试着握他的手。
关于让代码干净,我不会太担心,你的第二个解决方案对初学者来说已经足够好了。
不确定您是否知道Android Basics in Kotlin course,但如果您按部就班地进行,它会对您有很大帮助。
为了给你一个答案,这里有一个代码
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
}
}
这不是最流畅的解决方案,但正如我所说,它已经足够好了