试图从谷歌地图获取纬度是通过 Android 中的意图返回 null

Posted

技术标签:

【中文标题】试图从谷歌地图获取纬度是通过 Android 中的意图返回 null【英文标题】:Trying to get latitude from Google Maps is returning null through intent in Android 【发布时间】:2020-09-20 16:10:49 【问题描述】:

我试图让用户通过谷歌地图选择送货地址。选择的坐标需要在文本视图中显示。我正在使用意图将所选坐标返回到上一个活动,但问题是无论我尝试什么,意图每次都返回 null。

这是应将坐标放入意图中的按钮单击事件:

AddressSelectActivity.java

confirm.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 

            Intent intent = new Intent();
            intent.putExtra("Latitude", latitude);
            setResult(RESULT_OK, intent);

            finish();
        
    );

我正在检索 onResume() 的值:

Register.java

shipping.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            Intent mapsActivity = new Intent(v.getContext(), AddressSelectActivity.class);
            startActivityForResult(mapsActivity, 1);

        
    );

public void onActivityResult(int requestCode, int resultCode, Intent data) 
    super.onActivityResult(requestCode, resultCode, data);
    Toast.makeText(this, "Inside onActivityResult", Toast.LENGTH_SHORT).show();
    if (requestCode == 1) 
        if(resultCode == RESULT_OK) 
            Toast.makeText(this, data.getStringExtra("Latitude"), Toast.LENGTH_SHORT).show();
            shipping.setText(data.getStringExtra("Latitude"));
        
    

任何人都可以提供任何指导。谢谢!

【问题讨论】:

吐司显示的纬度是否正确? @karan 不,吐司也是空的 【参考方案1】:

您没有在任何地方发送 Intent,您只需创建 Intent 并调用 finish()。即使您通过调用 startActivity 发送它,它也会创建另一个注册活动实例。我想你不想实现这一目标。要向后发送数据,请查看此帖子:How to pass data from 2nd activity to 1st activity when pressed back? - android

【讨论】:

谢谢。我尝试按照您附加的链接中给出的步骤进行操作。您可以看到我所做的更改。不幸的是,问题仍然存在。函数 onActivityResult 被调用,但它返回的“纬度”仍然为空。我该怎么办:( 您将 Double 传递给 Intent 并尝试获取字符串。你应该使用 data.getDoubleExtra() 不敢相信我忽略了这一点。非常感谢您。问题解决了!!

以上是关于试图从谷歌地图获取纬度是通过 Android 中的意图返回 null的主要内容,如果未能解决你的问题,请参考以下文章

从谷歌地图获取经度和纬度的不断更新[重复]

从谷歌静态地图中的像素坐标获取经度/纬度

从谷歌地图 url ftid (hex) 获取纬度/经度

如何从谷歌地图中的经纬度获取地址位置。? [关闭]

如何使用 ionic 中的 java 脚本从谷歌地图中的地址获取经度和纬度

从谷歌地图获取纬度和经度