1.活动1向活动2传递数据
代码如下:
String data = "hello secondactivity";
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
intent.putExtra("extra_data",data);
startActivity(intent);
通过使用putExtra方法来传递数据,第一个参数是键,第二个参数是需要传递的数据。
2.在活动2中将数据取出
代码如下:
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
Log.d("secondactivity",data);
首先通过getIntent()方法获取启动本活动的Intent,然后通过getStringExtra方法来获取数据,这里要注意,如果获取的是整形数据,就用getIntExtra()方法,如果是布尔型数据,则用getBooleanExtra()方法,以此类推。
3.将活动2数据返回给活动1
代码如下:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);
通过使用startActivityForSesult()方法启动下个活动就能在下个活动被销毁时获取到传递的数据,方法里面的数字只要是唯一值就行。活动2里面的代码如下:
Intent intent = new Intent();
intent.putExtra("data_return","hello firstactivity");
setResult(RESULT_OK,intent);
在这里构建了一个Intent,但是这个Intent只用于传递数据,没有任何的意图,通过使用setResult()方法,在第二个活动被销毁的时候就能将数据传递到第一个活动当中,第一个参数代表返回结果,一般为RESULT_OK和RESULT+CANCELED。
4.在活动1中获取活动2传递上来的数据
代码如下:
@override
protected void onActivityResult(int requestCode,int resultCode,Intent data){
switch(requestCode){
case1:
if(resultCode == RESULT_OK){
String returnedData = data.getStringExtra("data_return");
Lod.d("FirstActivity",returnedData);
}
break;
default:
}
}
在第二个活动被销毁后会回调上一个活动的onActivityResult()方法,所以我们需要重写这个方法,这个方法有三个参数,第一个参数是启动活动时传入的请求码,第二个参数是返回的结果,第三个参数包含传递的数据。