Лучше поздно, чем никогда: я создал библиотеку Android-SharedPreferences-Helper , чтобы помочь уменьшить сложность и усилие использования SharedPreferences
. Он также предоставляет некоторые расширенные функции. Немногие вещи, которые он предлагает, следующие:
- Инициализация и настройка одной строки
- Легко выбирать, использовать ли настройки по умолчанию или файл пользовательских настроек
- Предопределенные (по умолчанию значения по типу данных) и настраиваемые (что вы можете выбрать) значения по умолчанию для каждого типа данных
- Возможность установки другого значения по умолчанию для однократного использования только с дополнительным параметром
- Вы можете зарегистрировать и отменить регистрацию OnSharedPreferenceChangeListener, как и для класса по умолчанию
dependencies { ... ... compile(group: 'com.viralypatel.sharedpreferenceshelper', name: 'library', version: '1.1.0', ext: 'aar') }
Объявление объекта SharedPreferencesHelper: (рекомендуется на уровне класса)
SharedPreferencesHelper sph;
Создание объекта SharedPreferencesHelper: (рекомендуется в методе onCreate ())
// use one of the following ways to instantiate sph = new SharedPreferencesHelper(this); //this will use default shared preferences sph = new SharedPreferencesHelper(this, "myappprefs"); // this will create a named shared preference file sph = new SharedPreferencesHelper(this, "myappprefs", 0); // this will allow you to specify a mode
Помещение значений в общие настройки
Довольно просто! В отличие от способа по умолчанию (при использовании класса SharedPreferences) вам НЕ нужно будет называть
.edit()
и.commit()
когда-либо.sph.putBoolean("boolKey", true); sph.putInt("intKey", 123); sph.putString("stringKey", "string value"); sph.putLong("longKey", 456876451); sph.putFloat("floatKey", 1.51f); // putStringSet is supported only for android versions above HONEYCOMB Set name = new HashSet(); name.add("Viral"); name.add("Patel"); sph.putStringSet("name", name);
Вот и все! Ваши значения хранятся в общих настройках.
Получение значений из общих настроек
Опять же, просто один простой вызов метода с именем ключа.
sph.getBoolean("boolKey"); sph.getInt("intKey"); sph.getString("stringKey"); sph.getLong("longKey"); sph.getFloat("floatKey"); // getStringSet is supported only for android versions above HONEYCOMB sph.getStringSet("name");
Он имеет множество других расширенных функций
. Проверьте детали расширенных функций, инструкций по использованию и установке и т. д. на странице g6] GitHub Repository .
Это звучит как работа для нескольких ограничений, одно из которых имеет более низкий приоритет.
Во-первых, обязательное (приоритет 1000) ограничение больше или равно для размещения переднего края второго ярлыка в 12 точках от заднего края первого ярлыка.
Во-вторых, ограничение с более низким приоритетом для расстояния между передними краями ячейки и второй метки. Это будет сломано, когда первая метка станет слишком большой, и это нормально: именно поэтому она имеет более низкий приоритет.
Когда второе ограничение нарушено, первое ограничение будет контролировать расстояние между метками.