AndroidActivity概述

Activity意思是活动,在Android中是手机或者平板电脑的一屏,是Android程序中重要的组件,在一个Activity中可以添加一个或多个组件,这些组件负责具体的功能。
在Activity中有四种状态:运行、暂停、停止、销毁。
当处于运行状态时,在屏幕中是可以看到这个Activity,并且可以对其进行操作;当要关闭应用的时候,弹出一个询问是否关闭的对话框,这个时候属于暂停状态,Activity任然是可见的,但是不能对其进行操作;当在询问是否退出的对话框点击确定时,这个时候处于停止状态,并且这个Activity不再显示;当将一个程序强制关闭时,处于销毁状态。
Activity的生命周期:当第一次创建Activity的时候,首先会执行onCreate()、onStart()、onResume()方法,当onResume()方法执行完毕时,这个Activity就是一个可见的,即运行状态;在运行状态如果单击返回键时,就会执行onPause()方法,此时Activity处于暂停状态;onStop()方法是停止Activity;onDestroy()是销毁Activity;onRestart()方法会重新执行onStart()、onResume()方法。
创建Activity的步骤:
1.创建继承自Activity的Activity
2.重写回调方法,一般是重写onCreate()方法
3.设置要显示的视图,setContentView()
创建了Activity以后不可以直接使用,需要对其进行配置,打开Android的xml配置文件,在activity标签下再加一个activity标签,指定id为新创建的activity。

多个Activity之间数据的交换需要使用Bundle。
在一个Activity中启动另一个Activity需要使用Intent,当俩个Activity之间需要传递数据时,就需要使用Bundle将数据进行保存再传递。
Bundle可以理解是一个键值对的组合,将数据以键值对的形式保存到Bundle中。
传递过程:
将数据保存在Bundle对象中,将Bundle保存再Intent中,然后调用startActivity()方法启动另一个Activity。

保存数据部分关键代码:

Intent intent = new Intent(当前Activity,要跳转的Activity);
//创建一个Bundle对象
Bundle bundle = new Bundle();
//将数据保存到Bundle对象中,保存不同数据使用不同方法
bundle.put***("键",);
//将bundle保存到Intent中
intent.putExtras(bundle);
//调用startActivity方法启动另一个Activity
startActivity(intent);

获取数据部分关键代码:

//获取Intent对象
Intent intent = getIntent();
//获取Bundle对象
Bundle bundle = intent.getExtras();
//通过键来获取对应的数据
String xx = bundle.getString("键");

调用另一个Activity并返回结果:
使用startActivityForResult()方法,通过这个方法可以启动另一个Activity,并在新启动的Activity中选中一些内容后,关闭这个Activity,会将选择的内容返回到原来的Activity中。
语法格式:public void startActivityForResult(Intent intent,int requestCode)
第一个参数是一个Intent对象,用于指定想要启动的Activity,第二个参数是一个整型变量,用于指定一个请求码,从而实现用这个指定的请求码来启动Activity。这个请求码的作用是用来标识请求的来源。
示例:
在第一个Activity中启动第二个Activity

//创建Intent对象
Intent intent = new Intent(当前Activity.this,要启动的Activity.class);
//启动新的Activity,第二个参数为一个整型数
startActivityForResult(intent,**);

在第二个Activity中进行数据传递并设置Result值

//获取Intent对象
Intent intent = getIntent();
//创建Bundle对象
Bundle bundle = new Bundle();
//将数据存储到Bundle中,通过键值对的形式
bundle.put**("键",);
//将Bundle保存到Intent中
intent.putExtras(bundle);
//设置返回码,可以自己定义返回码,
//一般情况下设置为和启动这个Activity所指定的请求码是一样的
//第二个参数是一个Intent对象
setResult(**,intent);
//调用finish()方法关闭当前Activity
finish();

再转到第一个Activity,需要对返回结果进行处理。需要重写onActivityResult方法。

@Override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
	super.onActivity(requestCode,resultCode,data);
	//判断请求码和返回码是否与前面设置的相同,如果相同则获取传递的数据包
	if(requestCode == ** && resultCode == **){
		//创建Bundle对象来获取数据
		Bundle bundle = data.getExtras();
		//获取Bundle对象中的数据,不同的数据类型使用不同的方法
		String ss = bundle.getString("键");
	}
}

这样就完成了第一个Activity启动第二个Activity并选取部分内容,关闭第二个Activity后将选取的数据返回到第一个Activity。

发布了47 篇原创文章 · 获赞 3 · 访问量 4046

猜你喜欢

转载自blog.csdn.net/BEYONDmonster/article/details/105089637