Android第三章 Activity

Application

每个应用程序在不指定application的时候,系统都会帮助生成一个Application的实例。
一个Application代表的就是当前的应用程序
一般使用Application来做

  • 共享数据
  • 循环便利退出
  • 初始化第三方组件
    如果要实现这上面这三点,一般需要实现单例模式,注意点:
  • 不允许私有构造方法,由系统初始化
  • 不允许创建对象,对象由系统创建
  • 在onCreate生命周期中,将instance对象和this绑定。

Activity

android的核心对象之一
所有和用户交互(显示,操作)的功能都在这里

1. android:screenOrientation 指定当前Activity显示横竖等
2. android:exported 是否允许activity被其它程序调用
3. android:launchMode 设置Activity的启动方式standard、singleTop、sin
4. gleTask和singleInstance

  1. Android四大组件之一,
  2. Activity 95% 显示UI,处理和用户的交互
  3. Service 2% 处理后台长期任务,没有界面
  4. BroadcastReceiver 3% 通信,组件交互,
  5. ContextProvider 0% 获取联系人,短信。
Context 上下文


1. context 是 Application 和 activity的父类2. 2.很多方法中,传递的都是上下文,而不是具体的Activity或者Applicati

Activity的生命周期

  1. 创建 onCreate - onStart - onResume
  2. 死亡 onPause - onStop - onDestroy
    被盖住的情况
  3. 完全盖住 onPause - onStop 运行 onRestart - onStart - onResume
  4. 遮住一部分 onPause 运行 onResume
  5. 被回收了 被杀死,不会再执行任何的方法,在回来的时候,已经不是它了,从新创建另外
    一个activity

创建Activity

  1. 创建类继承于Activity
  2. 重写onCreate的方法并且设置布局(setContentView)
  3. 在manifest中application节点下注册activity(name=创建activity)

跳转Activity

  1. Intent intent = new Intent(this, 要跳转的Activity.class);
  2. startActivity(intent);

Toast

1. 使用静态方法来创建一个Toast对象,调用show方法来展示到屏幕上,一段时间后会自动消失
。
2. Toast toast = Toast.makeText(Context context,"msg",时间);
Toast.LENGTH_LONG,Toast.LENGTH_SHORT
3. toast.show();

LogCat界面

  1. Log 日志输出工具
    2.
  2. Log.e w i d v
  3. 可以添加过滤器,一般使用Tag和Application Name(包名+类名)来做过滤
  4. 启动过程
    1. 用户点击某个应用
    1. android系统开始查找该应用中的manifest清单文件,并且开始实例化Application
    1. 开始在整个Application中查找启动页面,去实例化整个启动Activity
    1. 启动的Activity开始实例化,并且调用各个生命周期方法
1. 如果没有,执行:window-show View - other - android - logcat
2.
3. 过滤器,一般通过 应用程序包名和Tag来过滤
4.
5. 文本过滤,可以筛选文本
6.
7. 过滤等级 v,d,i,w,e分别对应Log类的5个日志输出
8. Log.v
9. Log.d
10. Log.i System.out
11. log.w
12. Log.e

错误

1. ActivityNotFound 没有在manifest中声明
2. 颜色必须是 3 4 6 8
3. Activity修改掉了MainActivity
4. Activity配置的时候路径是你自己的
5. TextView可以配置图片 左右上下 DrawableLeft,Right,Top,Bottom

关闭Activity

  1. finish();//关闭当前的Activity

点击事件是View的方法,任意一个视图都可以被点击

xml中配置的点击事件

1. 在对应的Activity中,去实现这个方法
2. public void xxx(xml中设置的方法名)(View v){
3. //v代表当前点击的视图
4. }

代码中配置点击事件

  1. 直接设置this,让activity去实现这个接口,重写这个方法
  2. 直接new OnClickListener(){//重写方法};

Activity常用方法

1. //设置布局
2. 设置布局:setContentView(View/layoutId)
3. 关闭Activity:finish()
4. 从Activity找到组件:findViewById(resId);

监听事件

1. 每个组件 都有 监听事件。
2. View有三个监听器
3.onClickListener 点击事件
4. onLongClickListener 长按事件
5. //自定义View去讲
6.onTouchListener 触摸监听 (按下,抬起,滑动)
1. view.setOnClickListener(OnClickListener);
2.
3. interface OnClickListener
4. {
5. void onClick(View v);
6. }

设置字体

1. 在accets中添加字体(不能中文)
2. tv.setTypeface(Typeface.createFromAsset(getAssets(), "ttf/fzfdw.ttf"));

Activity栈

Activity带参跳转,带参返回

1. Bundle:专门用来携带数据的一个类,里面可以存放各种基本数据类型和序列化的对象。
2. Intent:intent有一个Bundle的成员变量,所有数据实际存放在Bundle
3. intent可以put的数据类型有:
4. 8种基本数据类型和数组
5. String和String数组
6. ArrayList<String|Integer>
7. 两种序列化对象
1. Intent intent = new Intent(Activity.this,xxx.class);
2. intent.putXXX(key,value);//将数据保存在intent中
3. startActivity(intent);
4.
5.
6. Intent intent = getIntent();
7. XXX data = intent.getXXX(key[,defalutValue]);

Activity带参返回

启动和普通不一样,启动方法为
startActivityForResult(intent,请求识别码);
重写Activity的 onActivityResult的方法来接受返回数据
返回数据页面中调用 setResult(RESULT_CODE[,Intent data]);finish();返回数据
ImageView 动态设置图片 setImageResouce(R.drawable.xxx);

代码创建
布局技巧
include
merge

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值