2015-02-01 2 views
1

У меня есть MapView во фрагменте, и у меня есть две проблемы, на которые я не могу найти решения. Я искал, но я не вижу, чтобы кто-то еще имел эти проблемы. Для справки, я в основном следую за this учебным пособием на страницах разработчиков.FusedLocationApi MapView in Fragment - addConnectionCallbacks, onConnectionSuspended

Это мой фрагмент:

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. Я искал, и я не смог найти кого-либо еще с этой проблемой. Я не уверен, как с этим бороться.

Кто-нибудь знает, как исправить это? Спасибо вам за помощь!

ответ

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 

Это не кажется идеальным, но он работает, по крайней мере сейчас. Если вы споткнулись об этом, и вы знаете, что лучше исправить, пожалуйста, оставьте ответ.

+0

Вы можете показать полный код класса –

 Смежные вопросы

  • Нет связанных вопросов^_^