我现在有一个布局,它有一个添加位置按钮。当前布局是一个表单,一旦添加了所有值,就会发送一个post请求。添加位置是其中一个值。当我点击addLocation按钮时,我会调用另一个MapActivity活动。这是我显示另一个名为map_layout.xml的布局,我允许用户自由输入他/她想要的位置,放大和缩小,多个叠加以及所有这些。
但是,这是一个不同的活动和布局。因此,我失去了之前活动的背景。如何将经度和经度发送回此活动?
或者,是否可以在同一活动中设置地图的相对布局(在“添加位置”按钮上),单击该按钮时会打开某些内容。
最大的问题是MapActivity需要打开MapView。但是,我在第一次活动中使用RoboActivity。我希望我对自己的困境很清楚。
答案 0 :(得分:1)
您可以使用RoboActivity中的startActivityForResult:
final int MAP_ACTIVITY = 1;
Intent intent = new Intent(getApplicationContext(), RoboActivity.class);
startActivityForResult(intent, MAP_ACTIVITY);
在MapActivity中,您可以返回如下数据:
Intent returnIntent = new Intent();
returnIntent.putExtra("latitude", fltLatitude);
returnIntent.putExtra("longitude", fltLongitude);
setResult(RESULT_OK, returnIntent);
finish();
要在RoboActivity中获得这些结果,您需要实现onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case MAP_ACTIVITY:
float fltLatitude = data.getFloatExtra("latitude", 0);
float fltLongitude = data.getFloatExtra("longitude", 0);
break;
}
}