Ho trovato un mini lettore Deezer su github, ma penso che sia stato codificato in Eclipse. Io comunque lavoro in Android Studio.La classe deve essere dichiarata astratta o implementare il metodo astratto
Beeing la mia prima applicazione Android deve essere una domanda niubbo, ma io sono bloccato su questo:
private DialogListener mDeezerDialogListener = new **DialogListener**() {
@Override
public void onComplete(Bundle values) {
// store the current authentication info
SessionStore sessionStore = new SessionStore();
sessionStore.save(mDeezerConnect, LoginActivity.this);
// Launch the Home activity
Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
startActivity(intent);
}
@Override
public void onDeezerError(final DeezerError deezerError) {
Toast.makeText(LoginActivity.this, R.string.deezer_error_during_login,
Toast.LENGTH_LONG).show();
}
@Override
public void onError(final DialogError dialogError) {
Toast.makeText(LoginActivity.this, R.string.deezer_error_during_login,
Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(LoginActivity.this, R.string.login_cancelled, Toast.LENGTH_LONG).show();
}
@Override
public void onOAuthException(OAuthException oAuthException) {
Toast.makeText(LoginActivity.this, R.string.invalid_credentials, Toast.LENGTH_LONG)
.show();
}
};`
La funzione grassetto mi sta dando un errore che recita:
Class 'Anonymous class derived from DialogListener' must either be declared abstract or implement abstract method 'onException(Exception)' in 'DialogListener'.
Non ho idea di quale sia il problema, ma per aggiungere la beffa al danno, tutto va bene con il primo @Override, ma il secondo, il terzo e l'ultimo mi danno questo errore:
Error:(91, 17) error: method does not override or implement a method from a supertype
Questo dovrebbe essere uno snippet di codice funzionante, quindi qual è il problema qui, perché i reclami su alcune delle @Overrides?
Questi due errori sono collegati?
Edit1:
Come suggerito ho aggiunto un'altra funzione:
@Override
public void onException(Exception exception) {
}
e il primo errore è andato via. Potrebbe essere che il codice originale su github sia stato scritto per una versione precedente di SDK, che facesse roba diferente?
@Override errori rimasti. ma per quanto posso vedere, queste sono sotto-eccezioni di onException?
EDIT2:
questo è definito nella Deezer SDK:
import com.deezer.sdk.network.connect.event.DialogListener;
sto guardando la loro documentazione e si parla in "Metodo Sommario": onCancel()
, onComplete(Bundle values)
, onException(Exception exception)
.
Inoltre, dice: void onException(Exception exception)
viene chiamato quando viene generata un'eccezione durante il processo di autenticazione.
le seguenti eccezioni possono essere sollevate: OAuthException
, DeezerError
, DialogError
.
Penso che posterò tutti i dati aggiuntivi qui.
Edit3:
Ecco come ho riscritto il codice:
@Override
public void onException(Exception exception) {
if(exception instanceof DeezerError){
Toast.makeText(LoginActivity.this, R.string.deezer_error_during_login,
Toast.LENGTH_LONG).show();
}
else if(exception instanceof DialogError){
Toast.makeText(LoginActivity.this, R.string.deezer_error_during_login,
Toast.LENGTH_LONG).show();
}
else if(exception instanceof OAuthException){
Toast.makeText(LoginActivity.this, R.string.invalid_credentials, Toast.LENGTH_LONG)
.show();
}
else{
//not implemented?
}
}
dà un avvertimento: Condition 'exception instanceof OAuthException' is always 'false'
.
Dovrò lavorare su questo, ma questa è ora una domanda diversa.
Puoi mostrarci la definizione della classe DialogListener (o interfaccia)? E sì, i 2 errori sembrano collegati. – Thierry
Questo è definito in Deezer SDK: import com.deezer.sdk.network.connect.event.DialogListener; Sto osservando la loro documentazione e menziona sotto "Riepilogo dei metodi": onCancel(), onComplete (valori bundle), onException (Eccezione eccezione). Dice anche: void onException (Eccezione eccezione) viene chiamato quando viene generata un'eccezione durante il processo di autenticazione. Possono essere generate le seguenti eccezioni: OAuthException, DeezerError, DialogError. Penso che mi manchi qualcosa con l'editor ?? – iggy
@iggy Ho aggiornato la mia risposta. – Thierry