Android的四大组件之Activity

简介: Activity( 活动 )一.创建Activity二.启动Activity的两种方式三.Activity之间页面跳转四.Activity之间的数据传输五.实现上一个activity接收下一个activity关闭之后传递的数据

Activity( 活动 )

用户操作的可视化界面;为用户提供了一个完成操作指令的窗口


Activity是通过一个Activity栈来进行管理,当前显示的Activity被放到栈顶


当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示


在Android App 中只要能看见的几乎都要依托于Activity,Activity是在开发中使用最频繁的一种组件


一.创建Activity

第一步:创建一个类继承AppCompatActivity




第二步:在清单配置文件AndroidMainfest中声明这个类




第三步:如果这个Activity的布局是首页,则需要声明 intent-filter




二.启动Activity的两种方式

1.startActivity();


2.startActivityForResult();


三.Activity之间页面跳转

Activity之间的页面切换是通过Intent进行通信的


Intent中文翻译成意图,Intent(意图)主要是解决Android应用的各项组件之间的通讯,


Intent又分为两种,一种是显示意图,一种是隐式意图。


显示意图:明确指定组件名的Intent为显式意图,指定了Intent应该传递给那个组件。


隐式意图:没有明确指定组件名的Intent为隐式意图,系统会根据隐式意图中设置的 动作(action)                      类别(category)、数据URI等来匹配最合适的组件。


显示意图的跳转:


第一种方式


       Intent intent=new Intent();

       intent.setClass(MainActivity.this,SecondActivity.class);

       startActivity(intent);

第二种方式


       Intent intent=new Intent(MainActivity.this,SecondActivity.class);

       startActivity(intent);

第三种方式


Intent intent = new Intent();

ComponentName componentName = new ComponentName(MainActivity.this, SecondActivity.class);

intent.setComponent(componentName);

startActivity(intent);

第四种方式


       startActivity(new Intent(MainActivity.this, SecondActivity.class));

隐式意图的跳转


       Intent intent = new Intent();

       //参数放入跳转页面的action

       intent.setAction("android.intent.action.MAIN");

       startActivity(intent);

四.Activity之间的数据传输

Activity之间是通过Intent进行通信的。intent.putExtra()这个方法参数有多种可以满足数据传输需求,此方法以key-value的方式存储 键值对


第一种方式


           //第一种方法是传输基本类型数据

           Intent intent = new Intent(MainActivity.this,SecondActivity.class);

           intent.putExtra("name","xiao_ming");

第二种方式


           //第二种方法是传输一个bundle,bundle类似一个map,可以防止key-value类型数据

           Intent intent = new Intent(MainActivity.this,SecondActivity.class);

           Bundle bundle = new Bundle();

           bundle.putString("name","xiao_ming");

           intent.putExtra("bundle",bundle);

第三种方式


           //第三种方法传输一个序列化,这里User是implements Serializable之后才能传递

           Intent intent = new Intent(MainActivity.this,SecondActivity.class);

           intent.putExtra("name",new User());

           startActivity(intent);

五.实现上一个activity接收下一个activity关闭之后传递的数据

第一步


       //写在MainActivity中

       Intent intent = new Intent(MainActivity.this,SecondActivity.class);

       startActivityForResult(intent,100);

第二步


       //写在SecondActivity中

       Intent intent = new Intent();

       intent.putExtra("name","xiao_ming");

       setResult(RESULT_OK,intent);

       finish();

第三步


//写在MainActivity中

protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {

       super.onActivityResult(requestCode, resultCode, data);

       if(requestCode==100&&resultCode==RESULT_OK){

           //写需要执行的操作

       }

}

创建MainActivity和SecondActivity,按以上三步走,就可以实现SecondActivity页面关闭后,MainActivity页面将打开,并获取SecondActivity传过来的数据


下一篇会给大家分享Activity的生命周期


注意事项

1.  android应用中每一个Activity都必须要在AndroidManifest.xml配置文件中声明,否则系统将不  识别也不执行该Activity。

2.  在android stdio会自动生成配置,但eclipse需要自己手动添加配置


3.  在Android App 中只要能看见的几乎都要依托于Activity,Activity是在开发中使用最频繁的一种组件


4.  当我们创建完毕Activity之后,需要调用setContentView()方法来完成界面的显示


目录
相关文章
|
9天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
1月前
|
存储 Android开发 开发者
深入理解安卓应用开发的核心组件
【10月更文挑战第8天】探索Android应用开发的精髓,本文带你了解安卓核心组件的奥秘,包括Activity、Service、BroadcastReceiver和ContentProvider。我们将通过代码示例,揭示这些组件如何协同工作,构建出功能强大且响应迅速的应用程序。无论你是初学者还是资深开发者,这篇文章都将为你提供新的视角和深度知识。
|
1月前
|
数据可视化 Android开发 开发者
安卓应用开发中的自定义View组件
【10月更文挑战第5天】在安卓应用开发中,自定义View组件是提升用户交互体验的利器。本篇将深入探讨如何从零开始创建自定义View,包括设计理念、实现步骤以及性能优化技巧,帮助开发者打造流畅且富有创意的用户界面。
85 0
|
29天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
74 6
|
30天前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
26 3
|
30天前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
18 3
|
1月前
|
XML 前端开发 Java
安卓应用开发中的自定义View组件
【10月更文挑战第5天】自定义View是安卓应用开发的一块基石,它为开发者提供了无限的可能。通过掌握其原理和实现方法,可以创造出既美观又实用的用户界面。本文将引导你了解自定义View的创建过程,包括绘制技巧、事件处理以及性能优化等关键步骤。
|
1月前
|
测试技术 数据库 Android开发
深入解析Android架构组件——Jetpack的使用与实践
本文旨在探讨谷歌推出的Android架构组件——Jetpack,在现代Android开发中的应用。Jetpack作为一系列库和工具的集合,旨在帮助开发者更轻松地编写出健壮、可维护且性能优异的应用。通过详细解析各个组件如Lifecycle、ViewModel、LiveData等,我们将了解其原理和使用场景,并结合实例展示如何在实际项目中应用这些组件,提升开发效率和应用质量。
44 6
|
30天前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
18 0
|
2月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
50 4