사용자 ID를 오래 저장해야합니다. 나는 긴 유형의 선호도로 사용자 ID를 저장하고 싶다. 어떤 문제가 서버가 정수형 인 사용자 ID 22를 할당하는 경우입니다. 나는 그것을 절약에 대한 환경 설정에 전달합니다. 숫자의 길이가 짧기 때문에 대신 putInt 메소드로 저장합니다. 그리고 만약 그것을 검색하면 정수가 long 형으로 캐스트 될 수 없다고합니다. 아래는 사용자 id를 저장하는 prefrence util 클래스의 오버로드 된 메소드입니다.항상 변수를 'long'으로 설정하십시오.
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();
}
나는 사용자 ID를 오래 저장하고 동일하게 검색하려고합니다. 그것이하는 일은, 자릿수의 길이 때문에 사용자 ID가 정수가 될지 예측하고 put 아래에 저장합니다. mEditor.putInt (valueKey, value); .. 당신이 좌절감을 이해하기를 바랍니다. 가능한 솔루션에 대해 생각할 수있는 것은 이러한 메서드에 값을 전달하는 것이 아니라는 것입니다. 난 그냥 putLong 메서드를 사용하여 명시 적으로 사용자 ID를 저장 .. 아니면 다른 해결책이 있습니까?
캐스트 긴에를하거나 문자 표기'22L'를 사용하여 여기에 코드입니다 – CollinD
@Usman Ghauri 다음을 사용하십시오 : Long.valueOf (int) ;. –
@CollinD 및 tushar : 감사하지만 그 중 하나의 사례를 해결할 수도 있지만 int 경우 문제가 발생할 수 있습니다. 저장 및 읽기는 다른 모든 int/long 환경 설정에 대해 사용하는 일반화 된 메서드입니다. 그래서 이것은 최상의 솔루션이 아닐 수도 있습니다. –