Android 安卓:发回一个意图分割丢失的数据

Android 安卓:发回一个意图分割丢失的数据,android,fragment,Android,Fragment,我不知道我做错了什么。 我想把用户发送到谷歌地图,然后从片段中选择一个位置。但在保存位置后,用户返回片段,但保存的数据丢失 该片段的代码如下所示: mapButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), SlamMap.clas

我不知道我做错了什么。 我想把用户发送到谷歌地图,然后从片段中选择一个位置。但在保存位置后,用户返回片段,但保存的数据丢失

该片段的代码如下所示:

mapButton.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), SlamMap.class);
            startActivityForResult(intent, 9998);
            getActivity().overridePendingTransition(R.anim.slide_in_left,
                    R.anim.slide_out_left);
        }
    });
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch (item.getItemId()) {
    case R.id.addLoc:
        Intent resultIntent = new Intent();
        if (itemizedOverlay.getLat() != 0 && itemizedOverlay.getLon() != 0) {
            Log.i("RUN", "" + (long) (itemizedOverlay.getLon()));
            resultIntent.putExtra("LON",
                    String.valueOf((long) itemizedOverlay.getLon()));
            resultIntent.putExtra("LAT",
                    String.valueOf((long) itemizedOverlay.getLat()));
            setResult(Activity.RESULT_OK, resultIntent);
            finish();
            overridePendingTransition(R.anim.slide_out_right,
                    R.anim.slide_in_right);
        }
        return true;
    default:
        return super.onMenuItemSelected(featureId, item);
    }
}
片段接收到这样的结果意图

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case (9998): {
        if (resultCode == Activity.RESULT_OK) {
            Log.i("RUN", data.toString());
            String lon = data.getStringExtra("LON");
            String lat = data.getStringExtra("LAT");
            setLocation(lon, lat);
        }
        break;
    }
    }
}
好的,MapActivity中的代码处理数据如下:

mapButton.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), SlamMap.class);
            startActivityForResult(intent, 9998);
            getActivity().overridePendingTransition(R.anim.slide_in_left,
                    R.anim.slide_out_left);
        }
    });
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
    switch (item.getItemId()) {
    case R.id.addLoc:
        Intent resultIntent = new Intent();
        if (itemizedOverlay.getLat() != 0 && itemizedOverlay.getLon() != 0) {
            Log.i("RUN", "" + (long) (itemizedOverlay.getLon()));
            resultIntent.putExtra("LON",
                    String.valueOf((long) itemizedOverlay.getLon()));
            resultIntent.putExtra("LAT",
                    String.valueOf((long) itemizedOverlay.getLat()));
            setResult(Activity.RESULT_OK, resultIntent);
            finish();
            overridePendingTransition(R.anim.slide_out_right,
                    R.anim.slide_in_right);
        }
        return true;
    default:
        return super.onMenuItemSelected(featureId, item);
    }
}
但是正如我所说,onActivityResult由setResult调用,但是意图没有关于我的两个字符串LON和LAT的信息

这里出了什么问题?

更换:

String lon = data.getStringExtra("LON");
String lat = data.getStringExtra("LAT");


关于

不,不是这样。我已经调试了意图,里面没有多余的东西。因此,在某种程度上,intent在将信息发送回片段的过程中丢失了信息。您是否检查了onMenuItemSelected方法上是否设置了LAT和LON?是的,它们是
Log.i(“RUN”,“long”)(itemizedOverlay.getLon())告诉我一个数字