2013-06-17 5 views
0

Я спасаю "долго" в Sharedpreferences, как показано ниже:Не удалось сохранить "длинные" в общей Preference

SharedPreferences preferences = context.getSharedPreferences("STARTTIME", android.content.Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = preferences.edit(); 
    editor.putLong("startTime", startTime); 
    editor.commit(); 

и Retreiving "длинный" из Sharedpreference, как показано ниже:

preferences = context.getSharedPreferences("STARTTIME", android.content.Context.MODE_PRIVATE); 
long getstartTime = preferences.getLong(startTime, 0); 

Но я я получаю значение «0» при возврате ..... Любая догадка, где я делаю ошибку?

+1

вы пропустили пару "": preferences.getLong ("startTime", 0); – Blackbelt

ответ

1

Это:

long getstartTime = preferences.getLong(startTime, 0); 

должен быть

long getstartTime = preferences.getLong("startTime", 0); 

Android интерпретировали startTime как идентификатор ресурса, а потому, что он не нашел его, вы получите значение по умолчанию, что вы прошли в , как returnvalue.

+0

Aah ... Да, спасибо ... Мне тоже было интересно ... Я не получил ошибку компиляции, раньше я пытался сделать то же самое, но тогда это дало бы ошибку изменить «getLong» на «getString», что было странно ... – user1223035

+1

Сначала я также ожидал, что вы получите ошибку компиляции, но потом я вспомнил, что вы можете загрузить строки с помощью идентификаторов ресурсов, поэтому я объясню это. :) Вы должны отметить ответ, принятый для того, чтобы другие пользователи также могли идентифицировать решения аналогичных проблем. – Devolus

+0

Спасибо Devolus, можно сказать, где принять. Я никогда не пробовал. Я уверен, что это будет действительно полезно для других разработчиков. – user1223035

0

Вы должны передать тот же ключ методу getLong(), т.е. литералу "startTime".

long getstartTime = preferences.getLong("startTime", 0);