第5天:视图和控件-补充材料——`MainActivity.kt`解读
下面是对“第5天:视图和控件”该文学习的更深层次的补充材料,对 MainActivity.kt
文件的理解。
下面对`MainActivity.kt’ 文件中每一行进行详细解释:
package com.example.simplecalculator
- package:定义了这个文件的包名。包名通常用于组织代码文件,避免命名冲突。这里包名为
com.example.simplecalculator
。
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
- import:引入了所需的类和库。包括:
Bundle
:用于存储Activity的状态信息。Button
、EditText
、TextView
:Android中常用的UI控件。AppCompatActivity
:Android的基础Activity类,提供了向后兼容的特性。
class MainActivity : AppCompatActivity() {
- class MainActivity:定义了一个名为
MainActivity
的类,继承自AppCompatActivity
,这是Android应用的主要活动(UI界面)。
private lateinit var etNum1: EditText
private lateinit var etNum2: EditText
private lateinit var btnCalculate: Button
private lateinit var tvResult: TextView
- lateinit var:声明了四个属性,使用
lateinit
表示这些属性将在稍后初始化。这些属性分别对应于输入的数字、计算按钮和显示结果的文本视图。
override fun onCreate(savedInstanceState: Bundle?) {
- override fun onCreate:重写
onCreate
方法,这是Activity的生命周期方法之一。在Activity创建时调用。
super.onCreate(savedInstanceState)
- super.onCreate:调用父类的
onCreate
方法,确保父类的初始化操作得以执行。
setContentView(R.layout.activity_main)
- setContentView:设置当前Activity的布局为
activity_main.xml
文件中定义的布局。
// 初始化控件
etNum1 = findViewById(R.id.et_num1)
etNum2 = findViewById(R.id.et_num2)
btnCalculate = findViewById(R.id.btn_calculate)
tvResult = findViewById(R.id.tv_result)
- findViewById:通过ID获取XML布局中的视图对象,并将其赋值给对应的变量。这样可以在代码中引用这些UI控件。
// 设置点击事件
btnCalculate.setOnClickListener {
calculateSum()
}
- setOnClickListener:为
btnCalculate
按钮设置点击事件监听器。当按钮被点击时,调用calculateSum()
方法进行计算。
private fun calculateSum() {
- private fun calculateSum:定义一个私有函数
calculateSum
,用于执行加法计算。
// 获取用户输入
val num1 = etNum1.text.toString().toIntOrNull() ?: 0
val num2 = etNum2.text.toString().toIntOrNull() ?: 0
- 获取用户输入:
etNum1.text.toString()
:获取第一个输入框的文本并转换为字符串。toIntOrNull()
:尝试将字符串转换为整数,如果转换失败则返回null
。?: 0
:使用 Elvis 操作符,如果转换结果为null
,则默认赋值为0
。
val sum = num1 + num2
- val sum:计算两个数字的和并将结果赋值给
sum
变量。
// 显示结果
tvResult.text = "结果:$sum"
- 显示结果:将计算结果格式化为字符串并设置为
tvResult
文本视图的内容。
}
}
- 结束
calculateSum
方法和MainActivity
类。
总结
这段代码展示了一个简单的Android计算器应用的核心逻辑,通过获取用户输入、进行计算并显示结果,基本涵盖了Kotlin和Android开发中UI操作的基本方式。