Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从另一个方法访问位置变量_Java_Android - Fatal编程技术网

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位置没有改变}