【发布时间】:2017-08-30 09:03:52
【问题描述】:
我正在尝试使用 GeoFire 中的 getLocation() 方法,它需要两个回调。但是,@Override onLocationResult() 和 onCancelled() 出现 Method does not override method from its superclass 错误。如何解决这个问题?
注意:我的类扩展了 Fragment,getLocation() 在 onCreateView() 内。
代码:
public class Browse extends Fragment {
...
private DatabaseReference mDatabase; // NEW
private GeoFire geoFire;
private String businessID;
...
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_browse, container, false);
SharedPreferences businessID1 = getActivity().getSharedPreferences("BUSINESS_ID", Context.MODE_PRIVATE);
businessID = businessID1.getString("businessID", "businessIDNotFound");
mDatabase = FirebaseDatabase.getInstance().getReference().child("geo_fire"); // NEW
GeoFire geoFire = new GeoFire(mDatabase); // NEW
geoFire.getLocation(businessID, new LocationCallback() {
@Override <<<--ERROR HERE !
public void onLocationResult(String key, GeoLocation location) {
if (location != null) {
System.out.println(String.format("The location for key %s is [%f,%f]", key, location.latitude, location.longitude));
} else {
System.out.println(String.format("There is no location for key %s in GeoFire", key));
}
}
@Override <<<--ERROR HERE !
public void onCancelled(DatabaseError databaseError) {
System.err.println("There was an error getting the GeoFire location: " + databaseError);
}
});
return rootView;
}
}
编辑:我的 gradle 构建错误:
Error:(90, 13) 错误:方法没有覆盖或实现超类型中的方法
Error:(99, 13) 错误:方法没有覆盖或实现超类型中的方法
错误:(89, 41) 错误:不兼容的类型:无法转换为 com.firebase.geofire.LocationCallback
依赖:编译'com.firebase:geofire-android:2.1.1'
【问题讨论】:
标签: android firebase callback overriding geofire