Java 从另一个方法访问位置变量
我想从我的Java 从另一个方法访问位置变量,java,android,Java,Android,我想从我的test()方法中的onLocationChanged方法访问纬度和经度变量 class MainActivity { private IALocationManager mIALocationManager; Double lat; Double lng; private IALocationListener mLocationListener = new IALocationListenerSupport() { @Override public void onLo
test()
方法中的onLocationChanged
方法访问纬度和经度变量
class MainActivity
{
private IALocationManager mIALocationManager;
Double lat;
Double lng;
private IALocationListener mLocationListener = new IALocationListenerSupport()
{
@Override
public void onLocationChanged(IALocation location)
{
lat = location.getLatitude();
lng = location.getLongitude();
Log.d(TAG, "location is: " + location.getLatitude() + "," + location.getLongitude());
}
}
public void test()
{
Log.d(TAG, "Latitude = " + lat);
Log.d(TAG, "Longitude = "+ lng);
}
}
从上面的代码中,我得到如下输出
//From onLocationChanged
location is: 2.8081944950315636,101.75935307113596
//From test()
Latitude = null
Longitude = null
我可以在onLocationChanged
方法中获取位置,但变量不会存储到lat
和lng
中,也不能通过test()
方法调用。
我可以知道如何解决这个问题吗?是否可以将变量从一个方法传递到另一个方法 问题是因为变量
lat
纬度和lng
经度只有在调用onLocationChanged
时才被分配变量。因此,如果在调用onLocationChanged
之前调用test()
方法,则lat
和lng
的值尚未赋值,并且没有值。
因此,解决方案是在调用方法之前,在
onLocationChanged
中调用方法test()
,或者使用if
语句检查null
检查您的onLocationChanged方法这不能被触发,请使用断点onLocationChanged查看您是否正在获取这些值。如果未调用此方法,则检查这一定是Location类/API的委派问题。我猜onLocationChanged
未被激发检查您是否正在获取位置。我已更新了代码,我可以从onLocationChanged
方法获取位置谢谢!我在onLocationChanged
和lat
lng
中调用了方法test()!现在我有另一个问题,那就是将lat
lng
的变量传递给另一个活动。。。。我该怎么做@XenolionOh在这种情况下,我必须先问你一个问题,你想在位置更改或单击某个按钮时转到下一个活动吗???因为onLocationChanged
将不断更新,单击某个按钮时,我想将上一次更新的lat
lng
传递到下一个活动。我现在已经找到您了。只需问另一个问题,并张贴在这里的链接,由于缺乏格式的评论。但简而言之,就是设计一个按钮,点击按钮确保在测试方法if(lat!=0){start activity}中放入一个if语句,否则{Toast to user位置没有改变}
。