【问题标题】:Trying to get latitude from Google Maps is returning null through intent in Android试图从谷歌地图获取纬度是通过 Android 中的意图返回 null
【发布时间】: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 不,吐司也是空的

标签: android android-intent google-maps-markers google-maps-android-api-2


【解决方案1】:

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

【讨论】:

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