Сохранение параметров Android-приложения
При создании приложений для мобильной операционной системы Android может возникнуть необходимость сохранить настройки того или иного приложения. В данной статье мы рассмотрим один из способов, как это сделать, а именно при помощи класса SharedPreferences.
Итак, вышеупомянутый класс SharedPreferences позволяет работать с настройками парами, то есть в виде «Название параметра» : «Значение». Это достаточно удобно, поскольку можно извлекать или сохранять те или иные настройки приложения независимо от его состояния. Для примера – нам нужно сохранить введенные в Activity названия feedburner и twitter, для того, чтобы впоследствии организовать к ним обращение как со стороны Activity, так и со стороны виджета.
Допустим, имеется Activity с Layout, который содержит два текстовых поля – логин и пароль (login, password). Эти две строки нужно сохранить при закрытии Activity, но отобразить снова при входе. Переопределяем для этого два метода нашего Activity – onCreate и onStop:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* Имеются поля ввода EditLogin и EditPassword.
Получаем значения данных полей… */
EditText loginEdit = (EditText)findViewById(R.id.editLogin);
EditText passwordEdit = (EditText)findViewById(R.id.editPassword);
/* Загружаем настройки приложения. Если настроек с указанным именем нету —
возвращаем второй аргумент. В данном случае это пробел. */
SharedPreferences settings = getPreferences(0);
String login = settings.getString(«Login»,» «);
String password = settings.getString(«Password»,» «);
/* Вставляем в текстовые поля login, password загруженные параметры */
loginEdit.setText(Login);
passwordEdit.setText(Password);
}
@Override
protected void onStop(){
super.onStop();
/* Ищем наши текстовые поля */
EditText loginEdit = (EditText)findViewById(R.id.editLogin);
EditText passwordEdit = (EditText)findViewById(R.id.editPassword);
/* Получаем содержимое полей и удаляем пробелы */
String login = loginEdit.getText().toString().trim();
String password = passwordEdit.getText().toString().trim();
/* Загружаем редактор настроек, вводим новые значения */
SharedPreferences settings = getPreferences(0);
SharedPreferences.Editor editor = settings.edit();
editor.putString(«Login», login);
editor.putString(«Password», password);
/* Сохраняем данные. Если этого не сделать – ничего не будет сохранено */
editor.commit();
}
При помощи данного фрагмента кода будут сохранены данные из приложения, которые будут восстанавливаться при входе. Важно: данный пример будет работоспособен в том случае, если в main.xml layout описано два текстовых поля ввода (TextEdit), с соответствующими id: editLogin и editPassword.