【问题标题】:How to Determine if Street Changes如何确定街道是否发生变化
【发布时间】:2013-12-09 02:37:30
【问题描述】:

我正在执行以下代码:

public static int c;
public static boolean flag = false;
public void onLocationChanged(Location location) {

    Geocoder geocode;
    List<Address> addresses;
    geocode = new Geocoder(this,Locale.getDefault());
    try{
        addresses = geocode.getFromLocation(location.getLatitude(), location.getLongitude(), 1);
        String address = addresses.get(0).getAddressLine(0);
        StN.setText(address.toString());

        /* if(streetChanges){
            c = 0;
            flag = false;
        }

        if(flag == false){
            //do something
            flag = true;
        } */

    }
}

我面临的问题是如何判断街道是否发生变化!?

任何想法。

【问题讨论】:

  • 保存最后一个地址,检查current_address != last_address..由于我不知道getAddressLine返回什么,这个方法返回当前街道对吗?
  • yes getAddressLine 根据设备的经纬度返回当前街道名称。

标签: android geocoding


【解决方案1】:
if (!address.equals(lastAddress))
{
    c = 0;
    flag = false;

    lastAddress = address;
}

里面

lastAddress

你存储你的最后一个地址,如果 onLocationChanged 被调用并且街道被改变地址并且 lastAddress 有不同的值,那么块被调用。我添加了 c = 0;和标志=假;因为在你的评论中你这样做了。删除你不需要的一切,只保留

lastAddress = address

添加

private String lastAddress; // Make it static if you need

下面

public static boolean flag = false;

这应该做你想做的。

啊,

StN.setText(address.toString());

地址已经是一个字符串:

StN.setText(address);

【讨论】:

  • 谢谢马尔科,我非常感谢你节省了我的时间,它工作得很好,非常感谢。
猜你喜欢
  • 2011-01-15
  • 2018-09-11
  • 2011-02-01
  • 2021-02-24
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 2011-04-17
  • 2018-06-10
相关资源
最近更新 更多