2016-10-21 1 views
0

Ich benutze einen benutzerdefinierten Adapter namens CustomQuestionAdapter, um eine Liste von Fragen in einem Listenansicht anzuzeigen, wie wir wissen, der Adapter erstreckt sich von einem ArrayAdapter, dann brauchte ich Informationen über meine Position innerhalb der Adapter, also implementierte ich die benötigten Schnittstellen (GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener) und implementierte seine Methoden, aber es zeigt mir eine Fehlermeldung "Methode überschreibt die Methode nicht von ihrer Oberklasse" in den Override-Methoden onStart() und onStop(), Aber als ich versuchte, von AppCompatActivity statt ArrayAdapter zu erweitern, verschwindet der Fehler.Android: Google API in einem benutzerdefinierten Adapter

Dies ist die Unterschrift meiner Klasse:

public class CustomQuestionAdapter extends ArrayAdapter<Question> implements 
    GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener 

Fehler hier „Methode nicht Methode von ihrer Oberklasse außer Kraft setzen“

@Override 
protected void onStart() { 
    super.onStart(); 
    mGoogleApiClient.connect(); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    if (mGoogleApiClient.isConnected()) { 
     mGoogleApiClient.disconnect(); 
    } 
} 

So, wie diese richtig zu beheben?

+0

onStart() und onStop() sind nicht die Methoden überschreiben in ArrayAdapter-Klasse. –

Antwort

1

Zur Realisierung GoogleApiClient.ConnectionCallbacks und GoogleApiClient.OnConnectionFailedListener, müssen Sie

@Override 
public void onConnected(@Nullable Bundle bundle) { 

    Log.d("isj","connected"); 
} 

@Override 
public void onConnectionSuspended(int i) { 

    Log.d("isj","connection susspended"); 
} 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 

    Log.d("isj","connection failed"); 
} 

EDIT diese Methoden außer Kraft setzen: onStart() und OnStop() Methoden nicht zum arrayAdapter Klasse gehören. Verbinden Sie den Google API-Client im Konstruktor Ihres Adapters oder Sie können zwei Methoden erstellen, um den googleApiClient zu verbinden und zu trennen, und sie aus der Aktivität aufrufen, in der Sie den Adapter setzen. Es ist immer eine bessere Idee, die erforderlichen Werte im Konstruktor des Adapters aus der Aktivität übergeben

+0

Ich habe sie überschrieben, aber es zeigt einen Fehler nur mit den onStart() und onStop() Methoden –

+0

siehe die bearbeitete Antwort oben – Isj

+0

Ja, Sie sind richtig, übergeben Sie den Speicherort Wert im Konstruktor des Adapters, ist die beste Lösung. –

Verwandte Themen