Весь код, отвечающий за взаимодействие с постоянным хранилищем, реализован в классе APrefWidgetModel. Часть Pref в имени класса означает “preference” (настройка), потому что этот класс для хранения данных модели виджета использует средство разделяемых настроек из Android.
Вдобавок этот класс представляет идею базового виджета. В поле iid хранится идентификатор экземпляра виджета. Этот класс всегда нуждается в конструкторе, принимающем идентификатор экземпляра виджета в качестве аргумента, для соответствия требованию идентификатора экземпляра.
Давайте взглянем на исходный код этого класса, . Ключевые методы классы выделены полужирным.
Этот метод начинается с запроса у производных классов карты из пар “ключ/значение”, где ключами служат атрибуты модели, а значениями — строковые представления значений этих атрибуто. Затем с помощью context.getSharedPreferences запрашивается контекст Android для получения доступа к файлу разделяемых настроек. За предоставление этого отвечает производная модель.
Получив разделяемые настройки, в соответствие с документацией Android мы запрашиваем редактируемую версию разделяемых настроек. Затем мы обновляем настройки по очереди, а по завершении запускаем метод commit , чтобы сохранить настройки.
Дополнительную информацию о классах SharedPreferences и SharedPreferences. Editor можно почерпнуть . В разделе “Ссылки” этой ы URL- адреса, указывающие на соответствующие руководства. Также полезно отметить, что файлы разделяемых настроек — это XML-файлы, http://oshq.ru/serversnls.html которые находятся в каталоге данных пакета.
Поскольку мы использовали единственный файл для хранения данных по всем экземплярам виджета, необходим способ различения имен полей среди множества экземпляров виджета. Например, если у нас есть два экземпляра виджета с именами и, понадобятся два ключа для хранения атрибута Name, так что будут имена name_ и name_. Эта трансляция осуществляется в следующем методе:
Производный класс также использует этот метод для определения обновляемого поля, когда оно вызывается вместе с методом setValue.
Опубликовал Kest
February 14 2015 14:00:39 ·
0 Комментариев ·
2886 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.