我在片段中有一个MapView
,我有两个问题似乎无法找到解决方案。我已经搜索了但我没有看到其他人遇到这些问题。作为参考,我主要关注开发者页面上的this教程。
这是我的片段:
public class MapFragment extends Fragment
implements GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
LocationListener
第一个问题在这里:
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(LocationServices.API)
.addConnectionCallbacks(this) //problem!
.addOnConnectionFailedListener(this) //problem!
.build();
调用addConnectionCallbacks(this)
会出错,说明无法将其应用于myPackageName.MapFragment
。我知道你必须在这里传递一个GoogleApiClient.ConnectionCallbacks
听众,但我看到的每个例子都使用this
,我不确定该怎么做。同样的问题出现在addOnConnectionFailedListener
中。在我的片段中,我已经实现了所有必要的方法,例如onLocationChanged()
。
第二个问题在这里:
@Override
public void onConnectionSuspended(int i)
{
Log.i(TAG_MAP_FRAGMENT, "GoogleApiClient connection has been suspended");
}
这会显示错误消息:Method does not override method from its superclass
。我已经搜索过,而且我还没能找到其他人解决这个问题。我不确定如何处理它。
任何人都知道如何解决这些问题?谢谢你的帮助!
答案 0 :(得分:4)
而不是:
implements GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener
尝试:
implements GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener
这解决了上面最初发布的所有三个问题。 但是,现在方法onDisconnected()
标有错误method does not override method from superclass
。
使用全部四个错误时修复错误:
implements GooglePlayServicesClient.ConnectionCallbacks,
GooglePlayServicesClient.OnConnectionFailedListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener
这似乎并不理想,但至少目前是有效的。如果您偶然发现了这个并且您知道更好的解决方案,请留下回复。