Je dois enregistrer l'ID utilisateur aussi longtemps. Je veux forcer enregistrer l'ID utilisateur dans le type de préférence long. quel est le problème si le serveur m'assigne 22 comme identifiant d'utilisateur qui est de type entier. et je le passe à la préférence pour l'épargne. il sauve sous la méthode putInt à la place parce que la longueur du chiffre est courte. et si je le récupère, il dit que l'entier ne peut pas être lancé longtemps. ci-dessous sont des méthodes surchargées dans ma classe prefrence util qui sauvegardent l'identifiant de l'utilisateur.force une variable à être de type 'long' toujours
public int read(String valueKey, int valueDefault) {
return mPreferences.getInt(valueKey, valueDefault);
}
public void save(String valueKey, int value) {
mEditor.putInt(valueKey, value);
mEditor.commit();
}
public long read(String valueKey, long valueDefault) {
return mPreferences.getLong(valueKey, valueDefault);
}
public void save(String valueKey, long value) {
mEditor.putLong(valueKey, value);
mEditor.commit();
}
Je souhaite enregistrer l'ID utilisateur aussi longtemps et le récupérer comme tel. ce qu'il fait est, il prédit que l'identifiant de l'utilisateur sera entier en raison de la longueur des chiffres peut-être et enregistrez-le sous mEditor.putInt (valueKey, value); .. J'espère que vous comprenez la frustration. ce que je pourrais penser de la solution possible est qu'au lieu de passer la valeur à ces méthodes. Je viens de sauvegarder explicitement l'identifiant de l'utilisateur avec la méthode putLong .. ou existe-t-il une autre solution?
Moulage à une longue, ou utiliser la notation littérale '22L' – CollinD
@Usman Ghauri Utilisez ce qui suit: Long.valueOf (int) ;. –
@CollinD et tushar: merci, mais cela pourrait résoudre un cas, mais peut causer des problèmes dans les cas int. enregistrer et lire sont la méthode généralisée que j'utilise pour chaque autre int/longue préférence. donc ce n'est peut-être pas la meilleure solution –