Activity间数据传递
使用putExtra()传递数据
putExtra(name,value)方法可将指定的数据封装到Intent对象中。其中,name为表示数据名称的字符串,value为要传递的各种数据类型的值。
要获取lntent对象中封装的数据,可调用各种getXXXExtra()方法。
使用Bundle对象传递数据
将各种数据封装到一个Bundle对象中,再将Bundle对象封装到Intent对象中传递给启动的活动。
Bundle对象的各种putXXX(String key,XXx value)方法,可将XXX类型的数据封装到其中,对应的用getXXX(String key)方法从其中获取数据。Bundle对象准备好之后,调用putExtras(bundle)或putExtra(name,bundle)方法将其封装到Intent对象中。
要从Intent对象中获取Bundle对象时,调用对应的getExtras()或getBundleExtra()方法即可。
获取活动返回的数据
startActivityForResult(intent,requestCode)方法来启动活动,请求返回结果:
参数intent是一个Intent对象,用于封装需要传递给活动的数据。
参数requestCode为请求码,是一个整数,用来标识当前请求。一个活动可能会接收到其他不同活动的请求,从活动返回时,它会原样返回接收到的请求码。
在处理返回结果时,可通过请求码判断是不是从所请求的活动返回。
在第二个Activity中,用setResult(resultCode,intent)方法设置返回结果,resultCode为结果代码,intent为封装了返回数据的Intent对象。
在第一个Activity中需重写onActivityResult(int requestCode, int resultCode,Intent data)方法来处理返回结果:
requestCode为从所请求的活动返回的它所接收到的请求码;resultCode为结果代码,常量RESULT_CANCELED表示用户取消了操作,RESULT_OK表示用户正确完成了操作;data为请求活动返回的Intent对象,从中可获取返回的数据。