就像我可以从一个活动使用此数据发送到另一个:
intent.putExtra("Name", Value);
我怎么能在我使用发送数据finish()
回到以前的活动。
在从我的应用程序Activity_A
我要去给Activity_B
。 在Activity_B
我正在标记在地图上的位置,这使我的经度和纬度。 然后我想用这个lat和液化天然气Activity_A
。 但我不想回去Activity_A
使用意图,因为我不想重新创建Activity_A
以来已填写了一些数据都将丢失。
当您使用intent.putExtra("Name", Value);
使用同样的事情,一边整理活动也。
对于前:
从activityA你叫activityB这样的:
intent.putExtra("Name", Value);
now instead of startActivity() use `startActivityForResult()`
而从activityB,一边整理活动,请致电:
setResult(RESULT_OK);
现在,在activityA,你的onActivityResult
会被调用,这是这样的:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
}
所以inthis方式,您可以处理它。
在活动A:
// Add more, if you call different activities from Activity A
private static final REQUEST_GET_MAP_LOCATION = 0;
void doSomething() {
...
startActivityForResult(theIntentYouUseToStartActivityB, REQUEST_GET_MAP_LOCATION);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_GET_MAP_LOCATION && resultCode == Activity.RESULT_OK) {
int latitude = data.getIntExtra("latitude", 0);
int longitude = data.getIntExtra("longitude", 0);
// do something with B's return values
}
}
在活动B:
...
setResult(Activity.RESULT_OK,
new Intent().putExtra("latitude", latitude).putExtra("longitude", longitude));
finish();
...
打电话给你的Activity_B
用startActivityForResult()
从你的Activity_A
:
//Starting a new Intent
Intent nextScreen = new Intent(getApplicationContext(), Activity_B.class);
// starting new activity
startActivityForResult(nextScreen,1000);
一旦你完成工作后的Activity_B
,你打电话setResult()
设置数据,随后finish()
这样的
//Starting the previous Intent
Intent previousScreen = new Intent(getApplicationContext(), Activity_A.class);
//Sending the data to Activity_A
previousScreen.putExtra("Bla"," Blabla");
setResult(1000, previousScreen);
finish();
这将带你回到以前的Activity_A
。
在Activity_A
,重写onActivityResult()
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
String bla = data.getStringExtra("Bla");
}
发现这里
使用startActivityForResult
启动B和setResult
B之前finish
和处理onAcitivityResult
在一