Android
Activity
基础简述
- 简介:activity,中文活动,指安卓程序中正在运行的活动,主要用于实现应用的逻辑功能,与用户进行交互。若一个安卓程序没有运行的活动,其用户就看不到这个程序的回馈,这种程序通常是在后台运行,不涉及用户交互的。
- 基础操作:
为活动绑定自定义的视图:setContentView(R.layout.activity_main)
括号里的参数是你要绑定的视图文件名
启动另一个活动:startActivity(intent)
括号里的参数是要启动的意图
举个例子:
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
//这个意图对象意为从MainActivity跳转到Main2Activity
结束活动:finish();
直接结束当前活动 - 注意:如果是用编译器直接新建Activity的话,编译器会帮你注册好。但如果是自己新建java代码,手撸一个activity,不要忘记去下图目录的AndroidManifest.xml中注册你的activity
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7c66039e05558e28c267566a013bfd6d.png#pic_center)
生命周期
- onCreate():Activity创建时调用,通常做一些初始化设置
- onStart():Activity即将可见时调用
- onResume():Activity获取焦点时调用
- onPause():当前Activity被其他Activity覆盖或者屏幕锁屏时调用
- onStop():Activity对用户不可见时调用
- onDestroy():Activity销毁时调用
- onRestart():Activity从停止状态到再次启动时调用
数据传递
使用putExtra传递数据
- 简介:这个方法时Intent对象的一个方法,可以将指定数据封装进Intent对象中,再页面跳转后可以通过Intent对象再来取得这些数据
- 传进Intent:Intent.putExtra(String name,XXX value)这个方法俩个参数,第一个参数时你要传递的数据名字(字符串),第二个是要传递的数据的值(各种类型都可)
- 从Intent取得:首先再第二个Activity中使用getIntent()方法取得Intent对象,然后调用其getStringExtra(name)等方法来取得name所对应的参数。具体方法有
getCharExtra();
getFloatExtra();
getFloatArrayExtra();
getIntArrayExtra();
getIntExtra();
getStringArrayExtra();
getStringExtra();
getSerializableExtra();
使用Bundle传递数据
- 简介:其实还是离不了Intent,不过是创建了Bundle对象,将其传进Intent,然后将要传的值放在了Bundle对象中
- 传进Bundle:使用诸如putString(name,value)这样的方法来传进一个参数,然后将Bundle装进Intent,调用方法intent.putExtras(bundle);
- 取得Bundle中的参数:先取得Bundle对象,Bundle bundle = getIntent().getExtras();
然后调用其中的诸如getString(name);这样的方法来取得参数
数据回传
- 简介:活动1跳转到活动2,要求用户在活动2输入一定数据,来支持活动1的一些运作,这时候就需要活动2在关闭后给活动1回传一些参数。
- 使用startActivityForResult来启动活动2:使用方法startActivityForResult(intent,requestCode)来启动活动2,参数1还是之前方法介绍的意图,参数2是请求码,这个请求码是自己定义的一个整数,用来在获取回传参数时取得自己需要的某个意图回传的参数。
- 使用setResult设置回传参数:使用方法setResult(resultCode,intent)来在活动2中设置回传的参数,参数1是结果代码,常量RESULT_CANCELED表示用户取消了操作,常量RESULT_OK表示用户正确完成了操作,也可以直接用1和0来代替上面的俩个常量。参数2是封装了数据得Intent对象,封装方法见之前的俩种传法。在活动2中调用这个方法设置回传数据后当活动2结束后参数就会传出去。
- 重写onActivityResult来处理回传的参数:在活动1中重写onActivityResult(int requestCode,int resultCode,Intent data)方法来处理返回的结果,第一个参数是从所请求的活动返回的请求码,第二个参数是所请求得活动设置得结果代码,第三个参数是取得的Intent对象,从中可以解析出需要的数据内容。