1

我有一个使用 startActivityForResult 启动另一个活动的活动。这一步没问题。然后第二个活动有一个地图,当单击一个按钮时,地理点坐标被传递到一个包,该包在第一个活动上使用以填充 EditText。函数 onActivityResult 一直运行到最后,然后程序崩溃并在屏幕上显示一条消息“未找到源”。

这是mapActivity上的函数:

public void ConfirmLoc(View v){
    double lat = loc.getLatitudeE6()/1E6;
    double lng = loc.getLongitudeE6()/1E6;
    Intent ievloc = new Intent();
    Bundle bevloc = new Bundle();
    bevloc.putDouble("latitude",lat);
    bevloc.putDouble("longitude",lng);
    ievloc.putExtras(bevloc);
    setResult(RESULT_OK,ievloc);
    finish();
}

这是第一个活动的 onActivityResult:

protected void onActivityResult(int requestCode, int resultCode, Intent data){
    if(requestCode==1){
        if(resultCode==RESULT_OK){
            EditText loc= (EditText) findViewById(R.id.LocalizacaoEvento);
            bevloc = data.getExtras();
            if(bevloc!=null){
                String latitud = String.valueOf(bevloc.getDouble("latitude"));
                String longitud = String.valueOf(bevloc.getDouble("longitude"));
                loc.setText(latitud+" , "+longitud,TextView.BufferType.EDITABLE);

            }
        }
        else if(resultCode==RESULT_CANCELED){

        }
    }
}

任何人都可以帮忙吗?谢谢

4

1 回答 1

1

您需要在 onActivityResult 方法的顶部添加 @Override 行。执行此操作时,您还将添加以下行作为方法的第一行:

super.onActivityResult(requestCode, resultCode, data); 

还要确保您的编译器设置是 1.6 而不是 Eclipse 中默认的 1.5。

于 2012-12-21T09:35:34.933 回答