» Программирование Android

Сохранение параметров 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.