我正在执行以下代码:
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;
} */
}
}
我面临的问题是如何确定街道是否发生变化!?
任何想法。
答案 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);