一、引言
二、教学内容
1、Activity介绍(***)
一种包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含一个或多个活动,那么至于不包含任何活动的应用程序很少见,这类不予讨论。
- manifest:应用清单,描述app所包含的东西
- java:程序源码
- generatedJava:
- res:资源文件
注意:可以点击简单了解下xml是啥,干啥用?
2、Activity内容的修改(*****)
- 静态修改
- 动态修改
3、新建Activity(***)
实现方法:在项目下(app或者任意文件夹)右击——>new——>activity
三种变化
- 增加一个新的类
- 增加一个对应的布局文件
- AndroidManifest.xml中增加注册信息
4、Activity的跳转(*****)
Intent是Android中各组件之间进行交互的一种方式,在这一章节就进行显示跳转的一个简单演示,在onCreate()方法中实例化按钮对象,并设置鼠标监听。
- 显示跳转
//创建两个活动,在mainActivity中创建一个按钮,实现点击按钮跳转到next activity //变量、控件的命名方式自行选择, Button btnAlert = this.findViewById(R.id.btnToNext); btnAlert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, Main2Activity.class); //.this以及.class会在后面章节中说明 startActivity(intent); } });
- 隐式跳转(在后面章节完成后,再通过超链接跳转)
5、跳转传值(****)
主要使用如下方法:
- putExtra方法:放置数据;这个方法接受两个参数,第一个参数是键,用于后面从Intent中取值,第二个参数才是真正要传递的数据
- getIntent:获取发送过来的意图
- getStringExtra:获取传递的数据
MainActivity
Button btnAlert = this.findViewById(R.id.btnToNext); btnAlert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String data = "Hello Main2Activity"; Intent intent = new Intent(MainActivity.this, Main2Activity.class); intent.putExtra("extra_data",data); startActivity(intent); }
Main2Activity
Intent intent=getIntent(); String data = intent.getStringExtra("extra_data"); Log.d("Main2Activity",data);//日志调试
实现效果
6、跳转传值并返回(***)
所用方法如下:
- startActivityForResult
- setResult:放置返回数据;
- onActivityResult:接收返回数据
7、活动状态(*****)
活动的生命周期对Android开发者十分重要,我们首先要理解返回栈的用途。
Android使用任务(Task)来管理活动,一个任务(Task)就是一组存放在栈里的活动的集合,这个栈也被称作返回栈(Back Stack)。栈是一种后进先出的数据结构,默认情况下,每当我们启动一个新的活动,它就会在返回栈中入栈,并处于栈顶的位置。而每当我们按下Back键或者调用finish()方法销毁一个活动时,处于栈顶的活动就会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。系统总会显示处于栈顶的活动给用户。
- 运行态:活动正在和用户交互
- 暂停态:部分可见
- 停止态:完全不可见
- 销毁态:在返回栈中移除
七种回调方法
- onCreate:创建活动,用于初始化
- onStart:不可见到可见
- onResume:准备好与用户进行交互的时候调用,处于栈顶,运行状态
- onPause:启动或调用另一个活动时
- onStop:可见——>完全不可见时调用
- onDestroy:销毁活动时调用
- onRestart:由停止变为运行状态之前调用
拓展:关于Android生命周期的详解
8、活动的启动模式
启动模式一共有4种,在实际项目中根据需求指定。
在AndroidManifest.xml中通过标签指定android:launchMode
- standard:默认,创建活动时,不会考虑栈中是否已有此活动
- singleTop:在启动活动时,如果发现返回栈顶已经是该活动,则可直接使用
- singleTask:如果栈中有活动,则不会创建新活动,直接使用该实例,并把所有在这个活动之上的所有活动全部出栈。
- singleInstance:此活动与其他程序共享,专门的栈来维护此类活动
注:本节的实践将在后面完成课程实践后补全。