千锋教育论坛

查看: 2463|回复: 21

复习:Activity学习笔记

[复制链接]

7

主题

8

帖子

28

积分

菜鸟

Rank: 1

发表于 17-3-31 10:00:00 | 显示全部楼层 |阅读模式
Activity学习笔记

一、Activity:是应用的界面,它可以和用户交互。是四大组件之一,必须注册。

Activity的创建方法,配置,跳转,页面返回及键盘监听:

监听硬件按键:重写onBackPress()方法,在方法内可以做一些返回之前的操作
              重写onKeyDown()方法,判断KeyCode为KeyCode为KeyEvent.KEYCODE-BACk时

Activity说明周期

创建时资源初始化:onCreate(),
Activity对用户可见时 onStart()
Activity对状态唤醒时 onRestart()
Activity获取焦点是,动态数据加载 onResume()
Activity失去焦点时,适合保存持久化数据 onPause()
Activity不可见时 onstop()
Activity销毁前,资源释放 onDestory()

二,基本用法
开启第一个 MainActivity:onRestart      
  1. MainActivity:onStart
  2.         MainActivity:onResume
复制代码
跳转到第二个 MainActivity:onPause
  1. TwoActivity:onCreat
  2.         TwoActivity:onStart
  3.         TwoActivity:onResume
  4.         MainActivty:onStop
复制代码
返回到第一个(finish第二个)
  1. TwoActivity:onPause
  2.         MainActivity:onRestart
  3.         MainActivity:onStart
  4.         MainActivity:onResume
  5.         TwoActivity:onstop
  6.         TwoActivity:onDestory
复制代码
        
三,Activity如何显示内容
  1. setContentView(int layoutID);
  2. setContentView(TextView tv);
复制代码

四,Intent
1,Intent-----快递的托运单
   意图,告诉系统你想做什么

(1)创建
        Intent intent=new Intent(上下文,目的地);
(2)绑定数据  (a)放数据 intent.putExtra(Key,value);
                (b)取数据 Intent intent=getIntent();
                        intent.getClass(上下文,目的地)


五、页面跳转
1、普通跳转     
  1. startActivity(intent);
复制代码
2、携带数据
  1.                 //传递数据   
  2.                 intent.setClass(MainActivity.this, CActivity.class);
  3.                 //往Intnet中存放数据
  4.                 //1)存放简单数据
  5.                 intent.putExtra("name1", 100);
  6.                 intent.putExtra("name2", "我是字符串");
  7.                 //2)传对象,对象必须要序列化
  8.                 Student stu = new Student();
  9.                 stu.setName("aaa");
  10.                 stu.setAge(111);
  11.                 intent.putExtra("name3", stu);
  12.                 //3)传递Bundle
  13.                 Bundle bundle = new Bundle();
  14.                 bundle.putString("name4", "我的Bundle");
  15.                 intent.putExtras(bundle);
  16.                 startActivity(intent);


  17.                 //接受数据

  18.         //接收Intent
  19.         Intent intent = getIntent();
  20.         //读取数据
  21.         int num = intent.getIntExtra("name1", 0);
  22.         String text = intent.getStringExtra("name2");
  23.         Log.e("Tag", "text = " + text);

  24.         Student stu = (Student) intent.getSerializableExtra("name3");
  25.         Log.e("Tag", "name = " + stu.getName());

  26.         Bundle bundle = intent.getExtras();
  27.         String msg = bundle.getString("name4");
  28.         Log.e("Tag", "msg = " + msg);
复制代码


3、带有返回值跳转
    1)startActivityForResult(Intent intent,int requestCode)

例:
  1.             intent.setClass(MainActivity.this, DActivity.class);
  2.                 startActivityForResult(intent, 100);
复制代码

    2)//回传数据,必须在finish前执行
       setResult(200, intent);
        例:   
  1.             //回传数据,必须在finish前执行
  2.                 Intent intent = new Intent();
  3.                 intent.putExtra("name5", "我是回传数据");
  4.                 setResult(200, intent);
  5.                 //关闭
  6.                 finish()
复制代码
    3)在原始画接收数据
        onActivityResult(int requestCode, int resultCode, Intent data)
        例:
            
  1. //接收数据
  2.     @Override
  3.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  4.         super.onActivityResult(requestCode, resultCode, data);
  5.         if (requestCode == 100 && resultCode == 200){
  6.             //由D画面返回
  7.             String result = data.getStringExtra("name5");
  8.             Log.e("Tag", "result = " + result);
  9.         }
复制代码
六、生命周期


七、屏幕翻转
1、当无任何特殊处理时,它会重新加载生命周期

2、为了禁止重载生命周期,
android:configChanges="orientation|keyboardHidden|screenSize"
监听翻转onConfigurationChanged

3、强制横竖屏
android:screenOrientation="portrait"  竖屏
                              landscape  横屏

八、返回栈
android:launchMode="singleInstance"
standard   标准模式 -- 顺序入栈出栈
singleTop  单栈顶 - 如果启动的Activity位置栈顶,则不做处理。否则,new Activity入栈
singleTask 单任务模式 - 挡我者死:栈中如果有该Activity,就直接使用,并且杀死它上面的所有Activity
singleInstance 单例模式 - 单例模式的Activity单独唯一一个栈中,并且是唯一的   
例 支付宝为单例模式   京东通过支付宝付款   跳转到支付宝界面后没有付款按下home键回到主页
当淘宝在想使用支付宝付款是 跳转到支付宝界面   支付宝显示为京东为完成付款的界面

7

主题

191

帖子

431

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 10:04:29 | 显示全部楼层
默默的顶一下

0

主题

137

帖子

301

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 10:40:37 | 显示全部楼层
好有爱,顶顶顶顶

7

主题

349

帖子

792

积分

大牛

Rank: 4

发表于 17-3-31 10:45:39 | 显示全部楼层
不错啊,能一起去很好

18

主题

193

帖子

438

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 11:57:13 | 显示全部楼层
希望自己通过努力,学好技术

18

主题

193

帖子

438

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 12:49:14 | 显示全部楼层
太给力了,就像打了鸡血一样!

0

主题

145

帖子

318

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 13:04:19 | 显示全部楼层
学习学习 多些分享

6

主题

328

帖子

752

积分

大牛

Rank: 4

发表于 17-3-31 15:51:21 | 显示全部楼层
过去我们留不住,就让它成为我们美好的回忆吧... 每天都是新的,我们无法追寻到过去的时光,但我们可以好好珍藏它,许多年过后,它将成为我们最珍贵的东西!我班v5。

31

主题

196

帖子

441

积分

牛人

Rank: 3Rank: 3

发表于 17-3-31 16:36:52 | 显示全部楼层
不过一缕云烟、不过一抹欢愉。不过一丝眷恋,不过一份狂欢。

5

主题

389

帖子

881

积分

大牛

Rank: 4

发表于 17-3-31 19:46:24 | 显示全部楼层
程序员的生活也很丰富的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们

电话:400-654-7778
交流群:523516910

点击咨询

学习资料

千锋教育

订阅|小黑屋|手机版|千锋教育论坛 ( 京ICP备12003911号-3 

GMT+8, 20-1-22 14:18 , Processed in 0.275313 second(s), 35 queries .

Powered by 千锋教育 X3.2

© 2001-2015

快速回复 返回顶部 返回列表