处理mapActivity时出错。有一个更好的方法吗?

时间:2012-03-02 08:23:34

标签: android google-maps

我现在有一个布局,它有一个添加位置按钮。当前布局是一个表单,一旦添加了所有值,就会发送一个post请求。添加位置是其中一个值。当我点击addLocation按钮时,我会调用另一个MapActivity活动。这是我显示另一个名为map_layout.xml的布局,我允许用户自由输入他/她想要的位置,放大和缩小,多个叠加以及所有这些。

但是,这是一个不同的活动和布局。因此,我失去了之前活动的背景。如何将经度和经度发送回此活动?

或者,是否可以在同一活动中设置地图的相对布局(在“添加位置”按钮上),单击该按钮时会打开某些内容。

最大的问题是MapActivity需要打开MapView。但是,我在第一次活动中使用RoboActivity。我希望我对自己的困境很清楚。

1 个答案:

答案 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;
}
}