gpt4 book ai didi

android - 如何在 Android 的 OnCompleteListener 中返回值?

转载 作者:行者123 更新时间:2023-12-04 01:52:20 26 4
gpt4 key购买 nike

我正在尝试获取智能手机的 GPS,如下面的代码:

Activity.java ,我使用以下代码获取 GPS

private GPSClass gps;
gps.getGPSLocation();

GPSClass.java

public void getGPSLocation(){
FusedLocationProviderClient mLocationClient = LocationServices.getFusedLocationProviderClient(mContext);
mLocationClient.getLastLocation().addOnCompleteListener(mContext, new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if(task.isSuccessful()){
mLocation = task.getResult();
Log.i("getLocation---LOCATION", mLocation.getLatitude() + "/"
+ mLocation.getLongitude());

}
}
});
}

但是如何返回中的值GPSClass.java

我已经尝试更换

public void onComplete

代替

public Location onComplete

但是显示错误

'onComplete(Task<Location>)' in 'Anonymous class derived from com.google.android.gms.tasks.OnCompleteListener' clashes with 'onComplete(Task<TResult>)' in 'com.google.android.gms.tasks.OnCompleteListener'; attempting to use incompatible return type

我错过了什么吗?如何返回 OnCompleteListener 中的值?提前致谢。

最佳答案

您可以使用回调,例如

public void getGPSLocation(GPSCallback callback){
FusedLocationProviderClient mLocationClient = LocationServices.getFusedLocationProviderClient(mContext);
mLocationClient.getLastLocation().addOnCompleteListener(mContext, new OnCompleteListener<Location>() {
@Override
public void onComplete(@NonNull Task<Location> task) {
if(task.isSuccessful()){
mLocation = task.getResult();
Log.i("getLocation---LOCATION", mLocation.getLatitude() + "/"
+ mLocation.getLongitude());
callback.onLocation(mLocation);
}
}
});
}

创建一个名为 GPSCallback 的接口(interface),例如

interface GPSCallback{
void onLocation(Location location);
}

并通过回调调用方法

gps.getGPSLocation(new GPSCallback() {
void onLocation(Location location) {
// do what you need to do with the location
}
});

关于android - 如何在 Android 的 OnCompleteListener 中返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com