第一行代码--初步学习--Android四大组件-activity1

活动是什么

活动activity是最吸引用户的地方,它是一种可以包含用户界面的组件,主要用于和用户进行交互,App至少拥有一个Activity。

活动的基本用法

活动创建过程

1.新建Kotlin类 继承 AppCompatActivity

2.重写Oncreate()方法

3.绑定布局 setContentView(布局id)

4.在AndroidMainifest.xml注册

在布局ID中添加控件

布局控件位置:res/layout/activity_main.xml

常用布局控件

基础公共属性:

  • layout_width / layout_heightmatch_parent 铺满父容器

  • wrap_content 包裹内容

  • dp 尺寸单位

  • margin 外边距

  • padding 内边距

  • gravity 内部对齐

1.LinearLayout 线性布局 (垂直或者水平)

垂直/水平的XML布局示例

复制代码
<?xml version="1.0" encoding="utf-8"?>
<!--线性布局必要属性 orientation -->
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" //垂直
    android:orientation="horizontal" //水平
    android:padding="30dp">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是文本TextView"
        android:textSize="18sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="我是按钮Button"
        android:layout_marginTop="15dp"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入内容"
        android:layout_marginTop="15dp"/>
</LinearLayout>

ConstraintLayout 约束布局(主流推荐)

复制代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="约束布局标题"
        android:textSize="20sp"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"/>

    <Button
        android:id="@+id/btn_ok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="确定"
        app:layout_constraintTop_toBottomOf="@id/tv_title"
        app:layout_constraintStart_toStartOf="parent"
        android:layout_marginTop="20dp"/>

</androidx.constraintlayout.widget.ConstraintLayout>

常用单选/复选控件

RadioGroup 单选

复制代码
<RadioGroup
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="男"/>

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="女"/>
</RadioGroup>

CheckBox 复选

复制代码
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="记住密码"/>

在AndroidMainifest.xml文件中注册

在活动中使用Toast

toast简介:Toast 是短暂弹出的提示消息,自动显示、自动消失,不占用焦点。

复制代码
默认底部显示
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show()
// 长时提示
Toast.makeText(this, "网络请求失败", Toast.LENGTH_LONG).show()

在活动中使用Menu菜单

Menu的作用:页面右上角三点菜单、选项菜单,放设置、关于、退出等功能。

使用Menu三步走:

默认放在标题处

  • res/menu 新建菜单 xml 文件
  • 重写 onCreateOptionsMenu() 加载菜单
  • 重写 onOptionsItemSelected() 处理菜单项点击
复制代码
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu,menu)
        return true
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId) {
            R.id.menu_settings -> Toast.makeText(this, "设置", Toast.LENGTH_SHORT).show()
            R.id.menu_about -> Toast.makeText(this,"关于",Toast.LENGTH_SHORT).show()
            R.id.menu_exit -> finish()
        }
        return true
    }

放在按钮点击处

res/menu 新建菜单 xml 文件

在主页面布局按钮

按钮点击触发菜单栏

复制代码
val popup = PopupMenu(this,button)
            popup.menuInflater.inflate(R.menu.main_menu, popup.menu)

            // 菜单点击
            popup.setOnMenuItemClickListener { item ->
                when (item.itemId) {
                    R.id.menu_settings -> Toast.makeText(this, "设置", Toast.LENGTH_SHORT).show()
                    R.id.menu_about -> Toast.makeText(this, "关于", Toast.LENGTH_SHORT).show()
                    R.id.menu_exit -> finish()
                }
                true
            }
            popup.show() // 显示

main_menu.xml文件内容

复制代码
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/menu_settings"
        android:title="设置"/>

    <item
        android:id="@+id/menu_about"
        android:title="关于我们"/>

    <item
        android:id="@+id/menu_exit"
        android:title="退出"/>
</menu>

总结

  1. Activity 是 Android 四大组件之一,负责用户界面展示与交互,是 App 必不可少的组件。
  2. 活动必须继承 AppCompatActivity,在 onCreate 中绑定布局,并在 AndroidManifest.xml 中注册才能使用。
  3. 常用布局包括 LinearLayout(线性布局)、ConstraintLayout(约束布局) 等,可摆放 TextView、Button、EditText、RadioButton、CheckBox 等基础控件。
  4. Toast 是轻量级提示工具,可快速弹出消息,自动消失。
  5. Menu 菜单 有两种实现方式:
  6. 传统方式:依赖标题栏,重写 onCreateOptionsMenuonOptionsItemSelected
  7. 独立弹窗方式:使用 PopupMenu,不依赖标题栏、不限制位置,更灵活。
  8. 活动是 Android 开发的基础,掌握页面跳转、界面布局、提示信息、菜单操作是学习 Android 的核心技能。
相关推荐
段一凡-华北理工大学3 分钟前
工业领域的Hadoop架构学习~系列文章02:HDFS架构深度剖析
大数据·人工智能·hadoop·学习·架构·高炉炼铁
星恒随风5 分钟前
C语言数据结构排序算法详解(上):从插入排序、希尔排序到选择排序、堆排序
c语言·数据结构·笔记·学习·排序算法
随遇丿而安28 分钟前
第6周:RecyclerView 真正难的不是“写个列表”,而是让列表在复用中保持正确
android
魔法阵维护师37 分钟前
从零开发游戏需要学习的c#模块,第三十章(掉落物品 —— 血包与能量)
学习·游戏·c#
在学了加油38 分钟前
Inception v1学习笔记
笔记·python·学习
是一个Bug1 小时前
LangChain 入门完全指南:核心概念、学习路线与实战 Demo
学习·langchain
晓梦林1 小时前
EVA靶场学习笔记
android·笔记·学习
私人珍藏库1 小时前
【Android】抖音无水印下载安卓端 轻载 QingZai v1.0.4
android·app·工具·软件·多功能
AI算法沐枫1 小时前
基于YOLO26深度学习的【果园荔枝检测与计数】系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】
开发语言·人工智能·python·深度学习·qt·学习·机器学习
OBiO20131 小时前
精准靶向心肌细胞的AAV怎么选择?
学习