Im Beispiel Codierung von in App-Abrechnung verwendet esAndroid in App-Abrechnung - Nutzung von Aufzählungen
public enum ResponseCode {
RESULT_OK,
RESULT_USER_CANCELED,
RESULT_SERVICE_UNAVAILABLE,
RESULT_BILLING_UNAVAILABLE,
RESULT_ITEM_UNAVAILABLE,
RESULT_DEVELOPER_ERROR,
RESULT_ERROR;
// Converts from an ordinal value to the ResponseCode
public static ResponseCode valueOf(int index) {
ResponseCode[] values = ResponseCode.values();
if (index < 0 || index >= values.length) {
return RESULT_ERROR;
}
return values[index];
}
}
und
int responseCode = response.getInt(Consts.BILLING_RESPONSE_RESPONSE_CODE);
boolean billingSupported = (responseCode == ResponseCode.RESULT_OK.ordinal());
für mich ist es sehr merkwürdig zu sein scheint hier eine ENUM zu nutzen. Wenn das Enum eine andere Reihenfolge verwendet, schlägt alles fehl und ich dachte, ein Enum sollte sich nicht auf einen bestimmten Ordinalwert verlassen. Warum wird so vorgegangen und nicht nur überprüft, ob der Returncode Null ist?
Wo in der Dokumentation von Android angegeben ist, dass zum Beispiel ein Return-Code von 3 ist RESULT_SERVICE_UNAVAILABLE. Ich kann das nur aus dem Beispielcode erraten.
Danke, A.