当前位置: 首页 > article >正文

第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的状态信息。
    • ButtonEditTextTextView: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操作的基本方式。


http://www.kler.cn/a/353208.html

相关文章:

  • Elasticsearch技术标准解析与实践案例
  • vim基本命令(vi、工作模式、普通模式、插入模式、可视模式、命令行模式、复制、粘贴、插入、删除、查找、替换)
  • W25Q64-FLASH
  • 通过外部化 `config.properties` 文件更换数据库配置
  • 用python编写一个放烟花的小程序
  • 持续交付的利器:Blue Ocean与Pipeline
  • 【力扣150Golang】除自身以外数组的乘积
  • SketchUp Pro 2024 for Mac 3D建模 草图设计大师软件安装【保姆级教程,简单小白轻松上手】
  • 箭头函数语法及书写规则。
  • 大模型量化算法之LLM.int8()
  • C语言——链表
  • (31)oracle数据泵导出
  • 使用Python语言结合OpenCV库来处理视频流和条形码/二维码的识别
  • docker逃逸方法汇总与简要分析
  • 【Sceneform-EQR】使用安卓设备的传感器实现3Dof的VR效果
  • atop命令详解
  • 服务器和中转机在网络安全方面
  • 打开网页 - 隐私设置限制浏览私密连接
  • Leetcode—1115. 交替打印 FooBar【中等】(多线程)
  • 代码随想录打卡Day 长度最小的子数组209 螺旋矩阵2 59
  • JavaWeb环境下Spring Boot在线考试系统的优化策略
  • Prometheus运维监控平台之服务发现配置、标签及监控规则编写(二)
  • 【Redis】CentOS 7 环境搭建 redis 最新版 7.4 分布式集群完整版详解
  • YOLO11改进 | 注意力机制 | 添加GAM注意力机制 【完整代码】
  • Frequency-Adaptive Dilated Convolution for Semantic Segmentation
  • 大数据面试题整理——Yarn