Мне нужно сохранить идентификатор пользователя как можно дольше. Я хочу, чтобы сохранить идентификатор пользователя в длинном типе предпочтений. какая проблема, если сервер назначит мне 22 как идентификатор пользователя, который является целым типом. и я передаю его предпочтение для сохранения. он сохраняется вместо метода putInt, потому что длина цифры коротка. и если я его извлечу, он говорит, что целое число не может быть отброшено до конца. ниже приведены перегруженные методы в моем классе prefrence, которые сохраняют идентификатор пользователя.Заставить переменную быть «длинным» всегда
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();
}
Я хочу сохранить идентификатор пользователя как можно дольше и получить его как же. что он делает, он предсказывает идентификатор пользователя как целое из-за длины цифр, возможно, и сохранит его под put mEditor.putInt (valueKey, value); .. надеюсь, вы понимаете разочарование. то, что я мог думать о возможном решении, заключается в том, что вместо передачи значения этим методам. Я просто скрываю идентификатор пользователя с помощью метода putLong .. или есть ли другое решение?
Cast на длинный, или использовать буквальное обозначение '22L' – CollinD
@ Усман Гаури Используйте следующее: Long.valueOf (int) ;. –
@CollinD и tushar: спасибо, но это может решить один случай, но может вызвать проблему во всех случаях. сохранение и чтение - это обобщенный метод, который я использую для любых других предпочтений int/long. так что это может быть не самое лучшее решение. –