Activity详解,用最通俗的语言告诉你什么是Activity(一)

大家好,我是小布丁。

今天还是分享Android基础知识,有Android基础的朋友都知道,Activity作为Android四大组件之一,掌管可视化界面。也是大多数人刚接触Android学的第一课。下面我来带大家学习/复习这部分知识,请大家不吝赐教,共同进步!

什么是Activity?

Activity是Android四大组件之一,是用户可视化的界面,界面中放置各种UI组件给用户操作及展示信息。我们打开一个应用,看到的整个页面就是一个Activity。

创建Activity的流程(纯新手向,大佬可以略过)

打开Android Studio,选择New project,进入此页面

图片

选择Empty Views Activity,点击Next:

图片

Name:项目名称,可以自己起

Package name:包名,会根据Name自动生成

Save location:项目的保存路径

Language:在本系列的安卓学习中,都使用Kotlin语言

点击Finish,生成新项目。

进入这个路径,可以看到系统自动给我们生成的Activity。

图片

Activity的内容解析

图片

这就是刚生成的MainActivity中的所有内容了,大家可能会好奇,为什么系统给我们自动生成的Activity叫做主Activity(MainActivity)呢?听我慢慢道来,每个项目都会有一个主Activity,在打开任意一个手机APP的时候,都会有一个主页面,就像打开B站(APP)就能看到首页推荐视频(主页面),这个主页面就是项目中的主Activity。这样说你明白了吗?

接下来详细介绍一下Activity中的代码都是什么含义:

class MainActivity:AppCompatActivity()

定义一个类MainActivity,继承AppCompatActivity,class Activity是Android系统的一个基类,所有自定义的Activity都需要继承class Activity或它的派生类才能拥有Activity的特性,AppCompatActivity是它的派生类,所以MainActivity需要继承AppCompatActivity。

override fun onCreate(saveInstanceState: Bundle?)

MainActivity中重写onCreate函数,所有的Activity类都需要重写onCreate函数,这个函数在Activity被创建后调用,参数后续会详细分析

super.onCreate(saveInstanceState)

调用父类的onCreate()函数。

setContentView(R.layout.activity_main)

Android讲究逻辑和视图相分离,最好每一个Activity对应一个布局。布局是指页面的样式排布,打开一个Activity页面是什么样式由布局决定,按钮等控件的逻辑是由Activity决定。这行代码就是把布局文件activity_main引入类MainActivity中,MainActivity的布局由activity_main决定。

布局文件activity_main中的代码都是什么含义?
<?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"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="Hello World!"        app:layout_constraintBottom_toBottomOf="parent"        app:layout_constraintEnd_toEndOf="parent"        app:layout_constraintStart_toStartOf="parent"        app:layout_constraintTop_toTopOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

TextView是一个文本框控件,android:layout_width="wrap_content"定义控件的宽,wrap_content在这的含义是“TextView的宽刚好能容纳文字”,还有一个选项是"match_parent",表示和父容器一样宽。android:layout_height="wrap_content"定义控件的高度,在这的含义是“TextView的高刚好能容纳文字”。

app:layout_constraintBottom_toBottomOf="parent"  app:layout_constraintEnd_toEndOf="parent"  app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"在这篇文章(https://mp.‍w‍eixin.q‍q.com/s/mfL3_p9obKrFN018aNLS4g)中有介绍,需要的话可以看看。

在AndroidManifest.xml文件中注册

所有的Activity都要在AndroidManifest.xml文件中注册才能生效。那怎么注册呢?打开AndroidManifest文件我们会发现:

图片

MainActivity已经被注册了!怎么样,Android Studio还是很智能吧~

怎样销毁一个Activity?

大家都知道,按一下Back键就可以销毁当前的Activity,那还有什么别的办法吗?如果要实现在页面上点击一个按钮就能销毁Activity的功能,你会怎么实现呢?

其实很简单,Activity提供了一个函数finish,调用这个函数就可以销毁当前Activity了。

button.setOnCLickListener{ //点击按钮后执行{}中的逻辑    finish()}

END

我是小布丁,一个在某互联网中厂苟且偷生的菜鸡,有一个公众号:码农小家园

欢迎关注,您的点赞是我最大的动力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/19215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DotNetty ByteBuffer

DotNetty是一个高性能的.NET网络通信框架&#xff0c;基于Netty&#xff0c;支持TCP、UDP、HTTP、WebSocket等协议。适用于高并发、低延迟场景&#xff0c;如实时通信、游戏服务器、IoT应用及大型分布式系统&#xff0c;通过异步I/O、零拷贝等技术提升性能&#xff0c;具备易用…

【3.vi编辑器使用(上)】

一、vi编辑器的三种模式及切换命令 1、vi是linux中最基本的编辑器。但vi编辑器在系统管理、服务器配置工作中永远都是无可替代的。 2、vi编辑器的三种模式&#xff1a;命令行模式、插入模式、底行模式。 &#xff08;1&#xff09;命令行模式&#xff1a;用户在用vi编辑文件…

智能变革:领域大模型重塑企业知识管理!

在如今知识密集型的行业领域里&#xff0c;企业员工每天都要与海量的文档和信息打交道&#xff0c;工作邮箱里充斥着无数邮件&#xff0c;办公桌上堆满了各种报告和文档&#xff0c;而每一个文件里都可能藏有关键信息。 然而&#xff0c;要从这些杂乱无章的信息海洋中找到需要…

AI生成四季变化解决方案,四季之美,一图尽揽

随着AI技术已经渗透到我们生活的方方面面&#xff0c;在这个充满变化的时代&#xff0c;美摄科技以其前沿的AI生成技术&#xff0c;为企业带来了全新的视觉体验——AI生成四季变化解决方案。这一方案不仅能够让车辆实拍的照片焕发不同季节的风采&#xff0c;更能在不改变原图构…

【Windows配置nginx开机自启】

Windows配置nginx开机自启 方式一&#xff1a;将nginx加入到windows服务中方式二&#xff1a;通过windows任务计划设定nginx开机自启 方式一&#xff1a;将nginx加入到windows服务中 下载window service wraper&#xff08;https://github.com/winsw/winsw/releases&#xff0…

配置PPPoE多播绑定vlanID并开启IPV6

准备工作 确保你的系统已安装ppp和rp-pppoe包&#xff1a; sudo apt-get install pppoe ppp创建VLAN接口 假设你有两个VLAN ID&#xff0c;分别为100和200。我们首先创建VLAN接口eth0.100和eth0.200。 sudo ip link add link eth0 name eth0.100 type vlan id 100 sudo ip …

自学新标日第十六课(完结)

第十五课 单词 单词假名声调词义ボート1小船ベンチ1长椅、长凳市役所しやくしょ2市政府携帯電話けいたいでんわ5手机禁煙きんえん0禁止吸烟風邪かぜ0感冒熱ねつ&#xff12;发烧睡眠すいみん&#xff10;睡眠お風呂おふろ&#xff12;澡堂、浴室薬局やっきょく&#xff10;药…

C++ 进阶(3)虚函数表解析

个人主页&#xff1a;仍有未知等待探索-CSDN博客 专题分栏&#xff1a;C 请多多指教&#xff01; 目录 一、虚函数表 二、单继承&#xff08;无虚函数覆盖&#xff09; 继承关系表&#xff1a; 对于实例&#xff1a;derive d 的虚函数表&#xff1a; 对于实例&#xff1a;b…

QT系列教程(5) 模态对话框消息传递

模态对话框接受和拒绝消息 我们创建一个模态对话框&#xff0c;调用exec函数后可以根据其返回值进行不同的处理&#xff0c;exec的返回值有两种&#xff0c;Qt的官方文档记录的为 QDialog::Accepted QDialog::RejectedAccepted 表示接受消息&#xff0c; Rejected表示拒绝消息…

如何将前端项目打包并部署到不同服务器环境

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学&#xff0c;可以点心心支持一下哈&#xff08;笔记是根据b站尚硅谷的前端讲师【张天禹老师】整理的&#xff0c;用于自己复盘&#xff0c;有需要学习的可以去b站学习原版视频&…

AI-driven Robotics专栏目录

本文是机器人学和人工智能相关专题文章的目录&#xff0c;记录了作者在AI和Robotics方面的学习心得&#xff0c;欢迎参与互动讨论&#xff0c;一起学习进步。作者很懒&#xff0c;但文章持续更新中… ROS相关 建议按顺序阅读下列文章 基于Docker的ROS开发 ROS2基础编程 ROS…

wxPython Demo大全系列:ActivityIndicator控件分析

一、ActivityIndicator介绍 wx.ActivityIndicator 控件是 wxPython 中用于显示活动指示器的控件&#xff0c;通常用于指示程序正在执行某些后台任务或操作。它在用户界面中以动画的形式表现出活动状态&#xff0c;让用户知道应用程序正在进行处理而不是被挂起。 主要特点 可视…

数据源不同?奥威BI软件是这么做的

面对数据源不同的情况&#xff0c;BI&#xff08;商业智能&#xff09;软件如奥威BI软件通常通过一系列技术和方法来实现数据的整理。以下以奥威BI软件为例&#xff0c;详细解释其如何整理不同数据源的数据&#xff1a; 数据收集&#xff1a; 爬虫技术&#xff1a;奥威BI软件…

eNSP学习——理解OSPF的Router-ID

目录 相关命令 原理概述 实验内容 实验目的 实验步骤 实验拓扑 实验编址 具体步骤 1、验证Router-ID选举机制 2、基本配置 3、理解OSPF的Router-ID 加深理解 相关命令 [R1]router id 1.1.1.1 //手动强制指定Router-ID[R1]int g0/0/0 [R1-GigabitEthernet0/0/0]…

透视AI技术:探索折射技术在去衣应用中的奥秘

引言&#xff1a; 随着人工智能技术的飞速发展&#xff0c;其在图像处理和计算机视觉领域的应用日益广泛。其中&#xff0c;AI去衣技术作为一种颇具争议的应用&#xff0c;引发了广泛的讨论和关注。本文将深入探讨折射技术在AI去衣中的应用及其背后的原理。 一、AI去衣技术简介…

Java进阶指南:高级面试问题与精辟解答(二)

Java 面试问题及答案 1. 什么是Java中的多线程&#xff1f;请简述Java中实现多线程的两种方式。 答案&#xff1a; Java中的多线程指的是程序能够同时执行多个任务的能力。Java提供了两种主要的方式来实现多线程&#xff1a; 继承Thread类&#xff1a;创建一个继承自Thread类…

精通Java异常机制,写出高质量代码

作为一名Java开发人员&#xff0c;异常处理是一个无法回避的话题。无论你是初学者还是老手&#xff0c;精通异常处理对于写出高质量、可维护的代码至关重要。今天&#xff0c;我将与大家分享关于Java异常处理的一切&#xff0c;助你在代码质量的道路上突飞猛进! 一、什么是异常…

java小技能: 数字和字母组合的验证码图片(生成验证码字符并加上噪点,干扰线)

文章目录 引言I 验证码的作用1.1 验证使用计算机的是一个人,而非计算机程序。1.2 提供一个很短的时间窗的一次性密码。II 数字和字母组合的验证码图片2.1 获取验证码图片2.2 生成验证码字符并加上噪点,干扰线see also引言 世界上没有绝对的信息安全,但是有防范得好和坏的分…

打造云计算时代的仿真软件

2024年5月25日&#xff0c;北京云道智造科技有限公司&#xff08;下称“云道智造”&#xff09;在深圳成功举办了2024新品发布会暨用户大会。来自全国各地的近500位客户和合作伙伴代表齐聚一堂&#xff0c;共同见证了云道智造新产品的隆重发布&#xff0c;交流分享了仿真领域的…

C++到底是如何从代码到游戏的?

很难用一篇回答说明怎样从C代码一路写出游戏&#xff0c;中间涉及的知识和技术太多了。 但是换一个角度看&#xff0c;从基本的C代码开始写出任何东西都不至于难到无法理解的程度&#xff0c;任何复杂的软件都是有迹可循的。刚好我有一些资料&#xff0c;是我根据网友给的问题…