Как использовать SharedPreferences для хранения постоянных данных Android - PullRequest
0 голосов
/ 13 декабря 2011

Я создаю приложение камеры. Я пытаюсь сохранить некоторую информацию, используя SharedPreferences. Я хочу сохранить некоторую постоянную информацию - последнее изображение, снятое в filepath. Но при первом использовании приложения перед съемкой данные будут иметь значение NULL.

Так что я хочу получить getSharedPreferences в onCreate и проверить, является ли значение нулевым. Но, насколько мне известно, единственный способ использовать getSharedPreferences - это только если вы ранее вызывали команду «Редактор». Следовательно, я получаю исключение NULL-указателя на объекте SharedPreferences в первый раз.

Как вы решаете это? </p> <pre><code> //inside on Create() imageData = getSharedPreferences("ImageData",MODE_PRIVATE); SharedPreferences.Editor prefEditor = imageData.edit(); prefEditor.commit(); String previousImage = imageData.getString("lastImageTaken", null); if(previousImage == null){ Log.d(TAG,"previous image is NULL"); } else{ //do something with the filepath } //----------------------- //in onClick of capture button imageData = getSharedPreferences("ImageData",MODE_PRIVATE); SharedPreferences.Editor prefEditor = imageData.edit(); prefEditor.putString("lastImageTaken", MyActivity.this.pictureFilePath); prefEditor.commit();

1 Ответ

1 голос
/ 13 декабря 2011

Пожалуйста, попробуйте это
Читать из SharedPreferences

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
    String name = preferences.getString("name","default");
    String email = preferences.getString("email","default");

Сохранить в SharedPreferences

Editor edit = preferences.edit();
                   edit.putString("name", "Roy");
                   edit.putString("email", "roy@mail.com");
                   edit.commit();
...