博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第二讲 Activity详解
阅读量:2003 次
发布时间:2019-04-28

本文共 2420 字,大约阅读时间需要 8 分钟。

一、引言

二、教学内容

1、Activity介绍(***)

一种包含用户界面的组件,主要用于和用户进行交互。一个应用程序可以包含一个或多个活动,那么至于不包含任何活动的应用程序很少见,这类不予讨论。

这就是一个新创建好的项目文件页面

  1. manifest:应用清单,描述app所包含的东西
  2. java:程序源码
  3. generatedJava:
  4. res:资源文件
    注意:可以点击简单了解下

2、Activity内容的修改(*****)

  1. 静态修改
  2. 动态修改

3、新建Activity(***)

实现方法:在项目下(app或者任意文件夹)右击——>new——>activity

三种变化
  1. 增加一个新的类
  2. 增加一个对应的布局文件
  3. AndroidManifest.xml中增加注册信息
    创建活动方法

4、Activity的跳转(*****)

Intent是Android中各组件之间进行交互的一种方式,在这一章节就进行显示跳转的一个简单演示,在onCreate()方法中实例化按钮对象,并设置鼠标监听。

  1. 显示跳转
//创建两个活动,在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);            }        });
  1. 隐式跳转(在后面章节完成后,再通过超链接跳转)

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()方法销毁一个活动时,处于栈顶的活动就会出栈,这时前一个入栈的活动就会重新处于栈顶的位置。系统总会显示处于栈顶的活动给用户。

  1. 运行态:活动正在和用户交互
  2. 暂停态:部分可见
  3. 停止态:完全不可见
  4. 销毁态:在返回栈中移除
七种回调方法
  • onCreate:创建活动,用于初始化
  • onStart:不可见到可见
  • onResume:准备好与用户进行交互的时候调用,处于栈顶,运行状态
  • onPause:启动或调用另一个活动时
  • onStop:可见——>完全不可见时调用
  • onDestroy:销毁活动时调用
  • onRestart:由停止变为运行状态之前调用
    生命周期

8、活动的启动模式

启动模式一共有4种,在实际项目中根据需求指定。

在AndroidManifest.xml中通过标签指定android:launchMode

  1. standard:默认,创建活动时,不会考虑栈中是否已有此活动
  2. singleTop:在启动活动时,如果发现返回栈顶已经是该活动,则可直接使用
  3. singleTask:如果栈中有活动,则不会创建新活动,直接使用该实例,并把所有在这个活动之上的所有活动全部出栈。
  4. singleInstance:此活动与其他程序共享,专门的栈来维护此类活动

注:本节的实践将在后面完成课程实践后补全。

转载地址:http://bpxtf.baihongyu.com/

你可能感兴趣的文章
Flink Operators之CoGroup和Join概述(16)
查看>>
Flink Operators之Process Function(17)
查看>>
Flink 异步I/O访问外部数据(18)
查看>>
深入理解python--线程、进程与协程(1)
查看>>
Flink中增量聚合函数和全量聚合函数的关系
查看>>
HIVE自定义函数--UDF函数(用户自定义函数)详解
查看>>
Java中访问控制符的具体用法
查看>>
Java包重点总结
查看>>
创建线程究竟该用第几种方式
查看>>
Java--流重点总结初稿
查看>>
Java高级部分流---换个角度思考流
查看>>
如何解决电脑ip地址冲突的问题
查看>>
Win下如何查看本地计算机的网络端口被哪个应用程序所占用
查看>>
TCP/IP、Http、Socket的区别
查看>>
Java高级部分容器重点总结下
查看>>
Java高级部分流重点总结上
查看>>
Html当中文本与标签如何居中
查看>>
SourceInsight 快速打开当前文件所在文件夹
查看>>
Android Camera 开发常见专业术语名词解释
查看>>
如何在excel中设置下拉菜单
查看>>