Android studio的Activity详解

Activity就相当于我们的手机界面,里面包含着各个组件

  1.  Activity 的4种状态

运行状态:屏幕可视,且可以进行操作

暂停状态:返回退出的时候,询问是否退出运行状态,此时属于暂停状态

---------------------------------------------------------------------------------------------------(运行和暂停状态时可进行对应操作)

停止状态:当点击确认退出该程序时,此时属于停止状态

销毁状态:当在任务管理器中强制停止程序运行,此时属于销毁状态

----------------------------------------------------------------------------------------------------(停止和销毁状态是不可见的)

  1. Activity的生命周期

 

  1. 创建、启动和关闭Activity

但是是不是创建好Activity后就可以直接运行了呢?

直接运行会报错:

错误提示,我们是否在配置文件中已经注册了要运行的Activity

配置AndroidManifest.xml

启动和关闭Activity

即使创建成功后,没有启动的话,在屏幕上也不会显示任何页面

启动分为两种情况

一种是直接找到入口,通过AndroidManifest.xml指定

 

另外一种是在主界面通过按钮然后指定跳转到某个界面,Tntent最常使用的就是它的跳转Activity和在Activity之间传值的功能

 

 关闭Activity

形参理解为入口参数,返回值理解为出口参数

很简单,只要再Activity中指定点击关闭按钮触发finish()方法就行,就会返回上一个调用它的Activity的界面,否则就回到主屏幕中

实例:

小技巧:怎么刷新当前的Activity呢?

调用onCreate(null)方法啦

 使用Bundle在Activity之间交换数据

Intent可以在两个Activity之间承担桥梁,但是桥梁是桥梁,桥梁上面跑的是大货车去运送数据,这个数据就是存放在Bundle中

什么是Bundle,可以把一些数据以键值对的形式保存到Bundle中,读取的时候通过Key找到Value

如何把Bundle保存的数据提交给另外一个Activity

顺序如下:把数据通过Bundle保存,然后调用putExtras()方法给到Intent

示例:

.show();

 

 

调用另一个Activity并返回结果

使用的方法不是startActivity(),而是

前面的参数是写指定的想要被启动的界面,后面的参数是一个请求码,用请求码来启动Activity

 

 

Fragment的生命周期

是安卓3.0中新增加的概念,中文意思是碎片,和Activity很相似

可以在多个Activity中重用Fragment,也可以使用多个Fragment在一个单独的Activity中建立多个UI面板

相当于单个界面之间来回切换,Fragment是一个更小的概念

一个Fragment必须被嵌入到Activity中,且直接受到所在的Activity的生命周期影响

如何创建Fragment,需要继承自己的父类

 

还要弄懂一个概念,什么是inflater

在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如Button、TextView等)。 具体作用: 1、对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;

2、对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的界面元素。

LayoutInflater 是一个抽象类,在文档中如下声明:

publicabstractclass LayoutInflater extends Object 

 

 

 

 

haihuibucon 

 

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

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

相关文章

arraylist 的扩容机制_每天都用ArrayList,你读过它的源码么?

作者:陌北有棵树,玩Java,架构师社区合伙人!【一】关于扩容如果没有指定初始容量,则设置为10/** * Default initial capacity. */private static final int DEFAULT_CAPACITY 10;ArrayList的扩容比较简单,容…

JAVA入门级教学之(IDEA工具的快捷键和简单设置)

1.字体font file-->settings-->输入font-->设置字体样式以及字号大小 2.快速生成main方法 psvm 3.快速输出Systm.out.println(); sout 4.删除一行 ctrly 5.怎么运行 代码删右键run 或者点击右上角箭头 shiftf10(不同电脑可能不一样) 6.左侧窗口中的列表怎么展开…

java selenium_selenium 常见面试题以及答案(Java版)

1.怎么 判断元素是否存在?判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException这样就可以使用try catch,如果catch到NoSuchElementException 就返回false2.如何判断元素…

关于HTML的盒子的一些小问题

最近在开发的时候发现一个小问题&#xff0c;<DIV>我们很熟悉的一个盒子元素 关于他的描述 1.按照我们正常人的思维逻辑 编写好一个DIV盒子&#xff0c;然后再在盒子里面添加边框border、内边距padding、内容&#xff0c;这是我们的思维逻辑 但是DIV的编写会随着你添加…

语义网络分析图怎么做_怎么去分辨化工壶,光说可能大家还是会有疑惑,所以做了几个图...

网友们经常会拿一些壶出来&#xff0c;拍图给我看&#xff0c;问我会不会是化工壶&#xff0c;说到底&#xff0c;还是不放心自己手头上的紫砂壶&#xff0c;怕对自身健康造成影响&#xff0c;在这里&#xff0c;小编特地编辑这一段&#xff0c;教大家怎么去分辨化工壶&#xf…

CSS3特效之转化(transform)和过渡(transition)

CSS3特效之转化&#xff08;transform&#xff09;和过渡&#xff08;transition&#xff09; 在对动画深入之前&#xff0c;我们需要先了解它的一些特性&#xff0c;CSS3的转化&#xff08;transform&#xff09;和过渡&#xff08;transition&#xff09;。有人可能会有疑…

java如何保证redis设置过期时间的原子性_分布式锁用 Redis 还是 Zookeeper

在讨论这个问题之前&#xff0c;我们先来看一个业务场景&#xff1a;系统A是一个电商系统&#xff0c;目前是一台机器部署&#xff0c;系统中有一个用户下订单的接口&#xff0c;但是用户下订单之前一定要去检查一下库存&#xff0c;确保库存足够了才会给用户下单。由于系统有一…

转 安卓解决 IDEA 下 struts.xml 中 extends=“struts-default“ 报红的问题

解决 IDEA 下 struts.xml 中 extends"struts-default" 报红的问题 现象 在IDEA中配置struts.xml时 extends"struts-default" 报红&#xff0c;配置拦截器时属性无预选项提示&#xff0c;也爆红。 struts.xml本身的配置并没有错误。 解决办法 CtrlShiftAl…

系统新模块增加需要哪些步骤_人工智能之父的问题解决策略:模块化

最近主题阅读马文明斯基(Marvin Minsky) 和西摩佩珀特(Seymour Papert)两位人工智能大师&#xff0c;关于思维&#xff0c;关于教育的书籍。其中马文被称为「人工智能之父」。两人都非常重视过程模块化。复杂问题的解决需要系统性&#xff0c;也很少一次做对&#xff0c;要通过…

小白学Linux(一:开门见山)

目录 1.javaEE&#xff0c;先搭环境再敲码 2.Linux大数据 3.Python 4. Linux的学习方向 5. Linux的进阶段位 6.下面开始进入实际操作环节 第一步.安装虚拟机软件 第二步.在虚拟机里面安装一个别人开发好的Centos系统&#xff08;可以在此系统中写Linux指令&#xff0c;…

vb net 模拟 ctrl+c_8款优秀的.NET开发工具,收藏了

NET是一个重要的应用程序开发平台&#xff0c;因为它安全、稳定、易于学习和实现。今天小编给就给大家介绍8款优秀的.NET开发工具&#xff0c;有需要的小伙伴可以收藏转发哦。1、ChocolatyChocolaty是一个Windows软件包管理器&#xff0c;这个工具的重要之处在于&#xff0c;它…

卸载后以前拍的视频会删除吗_可立拍!苹果自己的视频编辑App是一个被忽视的好工具...

手机预装应用总是不如三方产品&#xff1f;看到这个问题&#xff0c;你是不是会下意识反驳&#xff1a;iPhone自带 app 就很好用啊&#xff01;的确如此&#xff0c;iPhone 的《Pages》《备忘录》&#xff0c;这些 app 的优秀表现改变了不少人「拿到新机就想卸载预装应用」的想…

解决:Linux中的CentOS 7的火狐浏览器不能访问服务器

今天安装CentOS 7的时候配置好环境&#xff0c;发现火狐不能连网 分析了一些可能是我的虚拟机网络配置没开&#xff0c;因此我总结了两个方法 1.检查虚拟机的编辑--》虚拟网络编辑器--》看看是否是NAT连接 2.搜索计算机的服务--》找到VMware DHCP Service和VMware NAT Servi…

pyqt5 自定义控件_PyQt5学习笔记(十六)Pyinstaller打包与SQLite数据库

终于到了最后一章了QAQ&#xff0c;第一次写4万字以上的笔记分享&#xff0c;最近也在忙科创和CV的比赛&#xff0c;所以笔记会显得比较粗糙。其实吧分享这个笔记很大一部分是为了让自己记得更牢&#xff0c;网上翻阅自己的笔记也方便&#xff0c;如果有讲解注释不清楚的地方欢…

依赖第三方库时出现的问题:Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16

导入第三方库时出现了sdk版本不兼容问题 为我们app的module所支持的sdk最低版本与依赖module的sdk最低版本不一致 把15--》16即可

Linux基本目录结构

上一步我们已经搭建好实验环境了&#xff0c;这一节就来实际操作一下&#xff0c;到底什么是CentOS&#xff0c;到底什么是Linux操作系统&#xff0c;写什么&#xff0c;如何去做&#xff0c;如何去打开&#xff0c;下面我们带着这些疑惑展开这一节 1.打开终端&#xff0c;有些…

解决:VMware DHCP Service 服务无法启动

今天在布置项目的时候发现VMware DHCP Service 服务无法启动&#xff0c;连网络也连接不了 解决办法是 搞定 解决后验证Linux又可以连接上网络了

bmp文件格式_一次性解决CAD转换成BMP格式图片的问题

关于BMP格式图片&#xff0c;可能很多小伙伴都遇到得比较多&#xff0c;但在这里还是稍微解释一下吧。它是Windows操作系统中的标准图像文件格式&#xff0c;大家都知道BMP格式的图片都非常大&#xff0c;那是因为它没有经过任何压缩。当然&#xff0c;关于BMP文件当中蕴含着哪…

Linux如何配置网络IP地址

首先&#xff0c;脑子思路一定要清晰我们为什么要配置ip地址&#xff0c;我们的电脑一般是一个物理网卡&#xff0c;那么按照正常情况&#xff0c;我们的虚拟机里的Linux是和windows共享同一个物理网卡的&#xff0c;所以很正常&#xff0c;一个物理网卡不可能仅仅只有一个ip地…

shell 字典_腾讯T4周末不陪对象,就为了手打这份shell编程笔记

这个周末&#xff0c;为了某些原因&#xff0c;我把shell编程的一些基础知识进行了相应的整理&#xff0c;这里分享给大家&#xff0c;大家在看的时候&#xff0c;有什么问题可以在下方评论区给我留言呀&#xff0c;欢迎转发自己纯手打&#xff0c;原创不易&#xff0c;谢谢支持…