github에서 미니 Deezer 플레이어를 찾았지만 이클립스로 코딩 된 것 같습니다. 나는 안드로이드 스튜디오에서 일하고있다.클래스는 abstract로 선언되거나 추상 메소드를 구현해야합니다
이 멍청한 놈 질문해야 내 첫 안드로이드 애플 리케이션을에 beeing, 그러나 나는 이것에 붙어 :
굵은 기능 나에게라는 오류주고있다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();
}
};`
:
Class 'Anonymous class derived from DialogListener' must either be declared abstract or implement abstract method 'onException(Exception)' in 'DialogListener'.
을 나는 그 문제가 무엇인지 전혀 알지 못한다. 그러나 모욕을 외상에 추가하기 위해 모든 것이 첫 번째 @Override와 잘 맞지만 두 번째, 세 번째 그리고 마지막 하나는 나에게이 오류를 준다.
Error:(91, 17) error: method does not override or implement a method from a supertype
이 코드는 작동 코드 스 니펫 (snippet)으로 간주됩니다. 따라서 여기에있는 문제는 @Override 중 일부에 대한 불만 사항입니까?
두 오류가 연결 되었습니까?
EDIT1 :
@Override
public void onException(Exception exception) {
}
첫 번째 오류가 도망 갔어요 :
으로 내가 다른 기능을 추가 제안했다. github의 원래 코드가 이전 버전의 SDK 용으로 작성된 것일까?
@Override 오류가 발생했습니다. 하지만 볼 수있는 한, 그것들은 onException의 하위 예외입니까?
EDIT2 :
이이 Deezer에 SDK에 정의되어
import com.deezer.sdk.network.connect.event.DialogListener;
내가 그들의 문서에서 찾고 그것을 "방법의 개요"에서 언급 : onCancel()
, onComplete(Bundle values)
, onException(Exception exception)
.
또한 void onException(Exception exception)
은 인증 프로세스 중에 예외가 발생할 때 호출됩니다.
다음 예외가 발생 될 수있다 OAuthException
, DeezerError
, DialogError
.
여기에 모든 추가 데이터를 게시 할 것입니다.
EDIT3 : Condition 'exception instanceof OAuthException' is always 'false'
:
@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?
}
}
경고를 제공합니다 :
이 내가 코드를 재 작성하는 방법입니다.
나는 그것에 대해 연구해야 할 것이지만, 지금은 다른 질문이다.
DialogListener 클래스 (또는 인터페이스) 정의를 표시 할 수 있습니까? 그리고 예 2 개의 오류가 연결된 것 같습니다. – Thierry
이것은 Deezer SDK에 정의되어 있습니다. import com.deezer.sdk.network.connect.event.DialogListener; 나는 그들의 문서를보고 있는데, "메소드 요약"아래에 onCancel(), onComplete (번들 값), onException (예외 예외)가 언급되어있다. 또한 그것은 다음과 같이 말합니다 : void onException (예외 예외)은 인증 프로세스 중에 예외가 발생할 때 호출됩니다. 다음과 같은 예외가 발생할 수 있습니다. OAuthException, DeezerError, DialogError. 나는 편집장과 함께 뭔가를 잃어버린 것 같아요 ?? – iggy
@iggy 내 대답을 업데이트했습니다. – Thierry