Android开发一

Activity

Activity的主要作用

它是一个很重要的用户接口,在其中可以放置很多控件,也可以认为它是一个控件的容器

创建Activity要点

1.一个Activity就是一个类,并且这个类要继承Activity
2.需要复写onCreate方法
3.每一个Activity必须要在AndroidManifest.xml中进行配置
4.要为Activity添加必要的控件

public class Activity01 expend Activity{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle saveInstanceState){
        super.onCreate(saveInstanceState);
        setContentView(R.layout.main);
    }
}

Layout是布局文件夹
原则上每个Activity对应一个xml布局文件
但也可以多个Activity使用一个控件
线性布局
android:layout_width和android:layout_height设置控件大小
在线性布局中可以添加控件
文本
按钮
findViewById()方法取得布局文件中所声明的控件,前提是布局文件中对这些控件设置了id

Activity的生命周期

onCreate()
当activity第一次被创建就会调用,设置布局文件,绑定监听器,静态的设置操作会在其中执行
onStart()
当activity被用户看到时调用
onRestart()
当avtivity被重启时调用
onResume()
当activity能够获得用户焦点时调用
onPause()
将当前activity保存起来,进入下一个,回到当前时,将原先的数据显示出来
onStop()
当当前activity处于不可见的情况就会调用该方法,此时该activity处于停止状态
onDestory()
销毁activity
如果在代码中明确调用acticity的finish方法或操作系统的系统资源不够用时,会调用该方法
注:当activity被销毁后在进入会调用的是onCreate()

启动一个新的activity就会依次调用onCreate()、onStart()、onResume()方法
启动第二个activity时依次调用第一个的onPause()、第二个的onCreate()、onStart()、onResume()、第一个的onStop()方法(此时要注意,若第二个将第一个完全遮挡住才需要调用该方法,否则不用)
当从第二个返回第一个时,先调用onPause(),然后依次调用onRestart()、onStart()、onResume()方法,然后调用第二个的onDestory()方法

Task

task是一个存放activity的栈

运行过程
1.应用程序启动后,运行第一个activity之后,将activity对象压入栈中
2.点击按钮后启动第二个activity,该activity对象被压入栈中
3.启动第三个activity,该activity同样被压入栈中
4.每点击返回,栈顶对象出栈
注:显示的永远是栈顶的的activity,在栈顶下的activity并没有被销毁,调用finish方法会使压入的对象提前出栈,此时栈内只留下其余的activity

Activity布局

LinearLayout的使用方法(线性布局)

TableLayout的使用方法

Intent

多个Activity的关系

调用第一个Activity的startActivity(Intent intent)方法来从一个Activity跳转到另一个Activity,究竟要跳转到哪一个Activity或者跳转到第二个Activity要做什么,取决于传的intent对象。

Intent对象的作用

一个Intent对象包含一组信息
Intent像是一个请求

1.Component name
决定启动哪一个组件

当Activity执行startActivity(Intent intent)时,就需要调用另外一个Activity(Intent对象不是只在Activity之间起作用),首先要指定Component name来决定到底启动哪一个组件

2.Action
决定做哪些动作
指定另外一个Activity要做什么

3.Data
传送的数据

4.Categary

5.Extras
额外添加一些信息(键值对)

6.Flags

Intent对象的基本使用方法

例子:Activity间传递数据

//生成一个Intent对象
Intent intent = new Intent();
//传递数据
//在数据中加入键值对
intent.putExtra("testIntent", "123");
//说明是从哪个Activity跳转到哪个Activity,前者是从那个,后者是跳转到那个,setClass(PackageContext, class)方法
intent.setClass(Activity02.this, OtherActivity.class);
//传递该参数,例如
Activity02.setStartActivity(intent);
//在被传入的Activity中输入
//getIntent()得到传过来的intent
Intent intent = getIntent()//得到传递的值
String value = intent.getStringExtra("testIntent");

注:传递的双方也可以不是同一个应用程序
例:使用Intent发送消息

Uri uri = Uri.parse("smsto://0800000123");
Intent intent = new Intent(Intent.ACTION_SENDTO, uri);
intent.putExtra("sms_body", "The SMS text");
startActivity(intent);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值