Activity的使用

生命周期

从Activity01到Activity02的运行顺序为: Activity01 onPause -> Activity02 onCreate -> Activity02 onStart ->Activity02 onResume ->Activity01 onStop ->Activity01 onDestroy

返回Activity01的运行顺序为: Activity02 onPause -> Activity01 onCreate -> Activity01 onStart -> Activity01 onResume -> Activity02 onStop -> Activity02 onDestroy

onCreate函数:注册你要用到的变量,比如说service,receiver,这些变量是无论你的Activity是在前台还是在后台都能够被响应到的,然后调用上面那个用来初始化的函数初始化布局信息.

onStart函数:注册一些变量.这些变量必须在Activity在前台的时候才能够被响应.

onResume函数:调用一些刷新UI的函数,每当Activity调用到这里时就要刷新一下UI各控件的状态.

onPause函数:一般是做一些变量的设置,因为这个时候Activity马上就要切到后台处理,可能有些变量就要被释放掉或者状态要做些相应的调整.

onStop函数:反注册在onStart函数中注册的变量.

onDestory函数:反注册在onCreate函数中注册的变量.

调用另一个Activity

//从Activity01中转换到Activity02

//new 一个Intent对象,并制定要启动的class
Intent intent = new Intent();
//Activity01.this现在的Activity,Activity02.class要启动的Activity
intent
.setClass(Activity01.this,Activity02.class);
//调用一个新的Activity
startActivity
(intent);
//关闭原来的Activity
this.finish();

当系统中新添加Activity时,必须在AndroidManifest.xml里定义一个新的Activity

<!-- Activity02为类名 -->
<activity android:name="Activity02"></activity>

不同Activity之间传递数据

Activity01发送数据到Activity02

//new一个Intent对象,并指定class
Intent intent = new Intent();
intent
.setClass(Activity01.this,Activity02.class);

//new一个Bundle对象,并将要传递的数据传入
Bundle bundle = new Bundle();
bundle
.putDouble("height",199);
bundle
.putString("sex",man);

//将Bundle对象赋值给Intent
intent
.putExtras(bundle);

//调用Activity02界面(无返回)
//startActivity(intent);

//调用Activity02,Activity01界面等待返回,0为requestCode,如果大于等于零,则返回结果时会回调 onActivityResult() 方法
startActivityForResult
(intent,0);

Activity01对返回的处理

//覆盖onActivityResult() 
//requestCode为startActivityForResult中定义的值
protected void onActivityResult(int requestCode,int resultCode,Intent data){
 
switch(resultCode){
   
case RESULT_OK:
     
//取得Activity02的数据,并显示
     
Bundle bundle = data,getExtras();
     
String sex = bundle.getString("sex");
     
double height = bundle.getDouble("height");
     
break;
   
default:
     
break;
 
}
}

Activity02接收数据

//在onCreate中
//取得Intent中的Bundle对象
Bundle bundle = this.getIntent().getExtras();

//取得Bundle中的数据
String sex = bundle.getString("sex");
double height = bundle.getDouble("height");

Activity02返回上一页按钮

public void onClick(View v){
   
//intent为this.getIntent();
   
//RESULT_OK为resultCode,可以自定义一个整数,在onActivityResult中判断
   
this.setResult(RESULT_OK,intent);
   
this.finish();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值