如何确定街道变化

时间:2013-12-08 17:18:15

标签: android geocoding

我正在执行以下代码:

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;
        } */

    }
}

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

任何想法。

1 个答案:

答案 0 :(得分:1)

if (!address.equals(lastAddress))
{
    c = 0;
    flag = false;

    lastAddress = address;
}

内部

lastAddress

存储您的最后一个地址,如果调用onLocationChanged并且街道已更改地址且lastAddress具有不同的值,则会调用该块。我加了c = 0;和flag = false;因为在你的评论中你这样做。删除你不需要的一切,只需保留

lastAddress = address

添加

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

下面

public static boolean flag = false;

这应该做你想要的。

嗯,

StN.setText(address.toString());

地址已经是一个字符串:

StN.setText(address);