Найти тему
Dev

Сохранение и получение данных из SharedPreferences

Сохранить данные в SharedPreferences очень легко:

SharedPreferences editor = getSharedPreferences("AppPrefs", MODE_PRIVATE);
editor.edit().putString("text", text).apply();

// это на самом деле все). Ниже будет полный туториал.

получить данные так же легко:

SharedPreferences editor = getSharedPreferences("AppPrefs", MODE_PRIVATE);
String text = editor.getString("text", "default");

Первый параметр "text" - это ключ к данным, которые мы сохраняем. У каждой единицы данных должен быть свой ключ.

Второй параметр "default"- это значение по умолчанию. Если не найдутся данные с таким ключом, то мы получим обратно это значение по умолчанию.

AppPrefs - это на самом деле ключ к доступу SharedPreferences. Название может быть каким Вы захотите. В одном приложении может быть несколько SharedPreferences:

SharedPreferences editor = getSharedPreferences("Settings", MODE_PRIVATE);

SharedPreferences editor = getSharedPreferences("AppPrefs", MODE_PRIVATE);

SharedPreferences editor = getSharedPreferences("ModeSettings", MODE_PRIVATE);

Чаще всего используется MODE_PRIVATE - это значит, что только приложение имеет доступ к настройкам. Также существуют другие режимы, но их практически не используют:

  • MODE_APPEND - воссоединяет новые настройки и существующие
  • MODE_ENABLE_WRITE_AHEAD_LOGGING
  • MODE_MULTI_PROCESS
  • MODE_WORLD_READABLE - у других приложений есть доступ к чтению настроек
  • MODE_WORLD_WRITEABLE - у других приложений есть доступ к записи новых настроек

Чтобы сохранить данные используются методы для разны типов данных:

  • putBoolean(String key, boolean defValue)
  • putString(String key, String defValue)
  • putInt(String key, int defValue)
  • putFloat(String key, float defValue)
  • putLong(String key, long defValue)

Туториал

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.
activity_main);

//Инициализация переменных
EditText editText = findViewById(R.id.edit_txt);
Button saveBtn = findViewById(R.id.
save_btn);
Button getBtn = findViewById(R.id.
get_btn);
TextView textView = findViewById(R.id.
txt);

SharedPreferences editor = getSharedPreferences(
"AppPrefs", MODE_PRIVATE);

// ставим слушатели на кнопки
saveBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// получаем текст из EditText
String text = editText.getText().toString();

// сохраняем текст в хранилище
editor.edit().putString("text", text).apply();
}
});

getBtn.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
// получаем текст из зранилища
String text = editor.getString("text", "");

//Выводим еткст на экран в TextView
textView.setText(text);
}
});
}

SharedPreferences нужно использовать только для сохранения небольшого объема информации (например, настройки)!

Для сохранения большого количества данных лучше использовать json или базу данных SQL.

#SharedPreferences

#java

#программирование

#android