Сохранить данные в 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