如下代码,怎么获取到lat和lon供其他函数使用
public AMapLocationListener mLocationListener = new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation amapLocation) {
if (amapLocation != null) {
if (amapLocation.getErrorCode() == 0) {
Log.i("cao","当前定位结果来源-----"+amapLocation.getLocationType());
lat =amapLocation.getLatitude();
lon = amapLocation.getLongitude();
setlat(lat);
setlon(lon);
TextView textView1 = findViewById(R.id.jd);
TextView textView2 =findViewById(R.id.wd);
textView1.setText(String.valueOf(lat));
textView2.setText(String.valueOf(lon));
Log.d("经度是","当前是-----"+lat+"纬度是"+lon);
} else {
//显示错误信息ErrCode是错误码,errInfo是错误信息,详见错误码表。
Log.e("AmapError", "location Error, ErrCode:"
+ amapLocation.getErrorCode() + ", errInfo:"
+ amapLocation.getErrorInfo());
}
}
}
};
试试把onLocationChanged方法变成带返回值的,返回经纬度;
再这样调用
mLocationListener.onLocationChanged(amapLocation)
建立一个可共享域的缓存结构,设定好标识,其他地方使用,直接取值即可。注意缓存值的有效期及清理方式。