Страница настроек дает пользователям возможность настроить приложение в зависимости от своих предпочтений. Это отличная возможность дать пользователю возможность выбора. Например, такие приложения, как YouTube, позволяют пользователям выбирать между темным и светлым режимами, выбирать качество видео, настраивать уведомления и другие параметры одним щелчком мыши. Экран настроек расширяет свободу пользователя, позволяя им заявить о своих предпочтениях.
А нам, как разработчикам нам нужно найти самый простой и эффективный способ включения предпочтений в наше приложение. В этой статье мы создадим простой экран настройки, используя библиотеку настроек JetPack.
Плюсы этого варианта настроек, в том что нужно писать минимальное количество кода. Экран настроек создается в XML файле и все изменения, производимые пользователем на экране Preferences сохраняются автоматически. Наша задача только обработать нажатия элементов экрана.
Разберемся на примере приложения с меню Настройки.
OPERA PMS — 02 Profiles
Создадим новый проект
Откройте Android Studio и выберите New Project -> Empty Activity в качестве шаблона проекта, а затем нажмите next . Дайте приложению любое имя. В моем случае я назову этот проект PreferencesScreen. Мы будем использовать Kotlin в качестве нашего языка программирования для этого проекта. Оставьте все остальное по умолчанию и нажмите Finish . Затем подождите несколько секунд, пока Android Studio создаст проект.
Добавим меню в MainActivity
Пункт меню нужен, чтобы перейти к экрану SettingActivity .
Чтобы добавить menu файл ресурсов, выполните следующие действия:
Щелкните правой кнопкой мыши по папке res , и выберите new -> Android resource file . Затем перейдите к файлу ресурсов Android, введите имя файла и тип ресурса, menu затем нажмите OK , чтобы закончить.
Внутри menu пакета выберите new -> menu resource файл, затем назовите его setting_menu и нажмите finish . Добавьте в settings_menu файл следующие строки кода:
Чтобы меню было видно, добавьте в MainActivity.kt следующий код.
override fun onCreateOptionsMenu(menu: Menu?): Boolean
Добавим Settings activity
На этом шаге мы добавим в проект шаблон активности Settings.
Правой клавишей мыши щелкните по названию пакета и выберите:
New -> Activity -> Settings Activity
В результате в проект добавятся файлы:
- SettingsActivity.kt – активность экрана Settings
- settings_activity.xml – экран разметки, в котором будет только FrameLayout для вставки экрана с настройками. Такой вариант матрёшки нужен на случай если у вас появятся другие разметки экрана настроек.
- root_preferences.xml – в этом экране как раз и хранятся все кнопочки экрана настроек.
- arrays.xml – тут хранятся массивы и переменные необходимые для root_preferences.xml
Отредактируем файл arrays.xml
Давайте добавим свои параметры кнопочкам экрана настроек, отредактировав фал arrays.xml
Туториал #3 — Как пользоваться программой BF3 Settings Editor.
Светлая Тёмная Использовать системную тему 1 2 3 По умолчанию (100MB) 1.0 MB 4.7 MB 10.6 MB 32 MB 50 MB Отключено По умолчанию (100_mb) 1.0_mb 4.7_mb 10.6_mb 32_mb 50_mb Отключено
Это файл ресурсов. В нем есть несколько string-array – это массивы. Эти массивы мы присвоим элементам root_preferences.xml.
Отредактируем файл root_preferences.xml
Давайте немного разберемся:
- PreferenceCategory – этот групповой элемент объединяет другие элементы в общую категорию и присваивает этой категории имя.
- EditTextPreference – предназначен для ввода текста пользователем.
- ListPreference – раскрывающийся список, который содержит массив с ранее созданными параметрами из файла arrays.xml
- Остальные элементы я описывать не буду, они аналогичны элементам layouts.
Теперь немного о параметрах:
- app:key – это идентификатор параметра к которому мы будем обращаться из кода.
- app:defaultValue – значение по умолчанию
- app:summary – описание элемента
- app:summaryOn – описание если элемент включен
- app:summaryOff – описание если элемент выключен
- app:dependency – указывает от какого элемента зависит этот элемент
- app:min – минимальное значение элемента
- app:entries – массив описаний к значениям
- app:entryValues – массив самих значений
Отредактируем файл MainActivity.kt
Добавим в MainActivity.kt обработчик нажатий кнопки для перехода в меню настроек. Приведенный код вызывает меню, item используя его id . Далее мы создаём намерение действия перехода к SettingsActivity.
// Обработка нажатий кнопок меню override fun onOptionsItemSelected(item: MenuItem): Boolean < when (item.itemId) < R.id.setting -> < val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) >> return super.onOptionsItemSelected(item) >
Чтобы добавить в Toolbar экрана настроек кнопку назад, пропишем в файл manifest.xml к SettingsActivity следующую строку:
android_parentActivityName=».MainActivity»
Отредактируем файл SettingActivity.kt
package ru.jandroid.preferencesscreen import android.content.SharedPreferences import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatDelegate import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener < override fun onCreate(savedInstanceState: Bundle?) < super.onCreate(savedInstanceState) setContentView(R.layout.settings_activity) // Загружаем фрагмент if (savedInstanceState == null) < supportFragmentManager .beginTransaction() .replace(R.id.settings, SettingsFragment()) .commit() >// Подключаем SharedPreference PreferenceManager.getDefaultSharedPreferences(this) .registerOnSharedPreferenceChangeListener(this) > // Соединяем элементы экрана с SharedPreference, чтобы результат писался в память class SettingsFragment : PreferenceFragmentCompat() < override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) < setPreferencesFromResource(R.xml.root_preferences, rootKey) >> // Обрабатываем кнопку выбора Темы override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) < if (key == «theme»)< val pref = sharedPreferences?.getString(key,»1″) when(pref?.toInt())< 1 -> < AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_NO) >2 -> < AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_YES) >3 -> < AppCompatDelegate.setDefaultNightMode( AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) >> > > // Отключить SharedPreference, чтобы не занимать память override fun onDestroy() < super.onDestroy() PreferenceManager.getDefaultSharedPreferences(this) .unregisterOnSharedPreferenceChangeListener(this) >>
Чтобы подключить слушатель нажатий ко всем кнопкам экрана разметки добавляем следующую строку:
class SettingsActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener
Остальные элементы подписаны в коде.
Заключение
Вот так, достаточно просто и быстро можно прописать настройки приложения. Настройки на автомате сохраняются в SharedPreferences. За вами только набросать шаблон экрана настроек и добавить обработку нажатий элементов.
Источник: jandroid.ru
Команды ms-settings для быстрого доступа к настройкам Windows 10
Как вы наверняка помните, в Windows 7 большинство настроек системы находится в оснастке Панель управления (она же Control panel). Однако начиная с Windows 8 эта оснастка признана устаревшей, а ее функционал стал постепенно перекочевывать в новое приложение «Параметры Windows».
В результате этих изменений в Windows 10 классическая панель управления практически отсутствует, а для настройки параметров операционной системы используется исключительно приложение «Параметры Windows».
Предположим, нам надо изменить свойства экрана. Первым делом открываем меню Пуск и жмем на маленькую шестеренку в углу.
Затем на главной странице выбираем требуемый раздел.
И попадаем на страницу с настройками дисплея.
Как видите, для того, чтобы открыть страницу с нужными настройками, требуется несколько действий. Однако есть способ быстрее. Дело в том, что каждая страница настроек имеет свой собственный адрес (Uniform Resource Identifier, URI), зная который можно открыть ее всего одной командой. Команда должна начинаться с ms-settings:, например так мы попадем на главную страницу:
А для открытия свойств дисплея надо будет выполнить:
Команду можно запустить через меню Пуск -> Выполнить,
а можно набрать в проводнике Windows или в адресной строке браузера.
Также можно открыть страницу Параметры из консоли CMD или PowerShell, в этом случае команда будет выглядеть так:
Для открытия наиболее часто используемых страниц можно создать ярлык быстрого доступа. Для создания ярлыка необходимо кликнуть на рабочем столе правой клавишей мыши и в контекстном меню выбрать пункт Создать — Ярлык.
Далее надо указать команду для открытия нужной страницы. В нашем случая команда будет выглядеть так:
Ну и в завершение надо дать ярлыку понятное название.
Дополнительно можно выбрать для ярлыка картинку. Для этого открыть свойства ярлыка и нажать на кнопку «Сменить значок».
Для поиска надо указать файл C:WindowsSystem32shell32.dll и выбрать наиболее подходящий значок.
Получившийся ярлык можно оставить на рабочем столе, а также добавить на панель задач или в меню Пуск.
Ну и в завершение список команд ms-settings для открытия страниц настроек. Для большей наглядности все команды разбиты по разделам.
Windows Settings Page | Главная страница «Параметры Windows» |
ms-settings: |
Display | Дисплей | ms-settings:display |
Night light | Ночной свет | ms-settings:nightlight |
Sound (build 17063) | Звук | ms-settings:sound |
Notifications sleep | Питание и спящий режим | ms-settings:powersleep |
Battery | Батарея | ms-settings:batterysaver |
Battery usage by app | Использование заряда батареи | ms-settings:batterysaver-usagedetails |
Battery Saver settings | Настройки экономии заряда | ms-settings:batterysaver-settings |
Storage | Хранилище | ms-settings:storagesense |
Save locations | Изменить место сохранения нового содержимого |
ms-settings:savelocations |
Change how we free up space |
Изменить способ освобождения места |
ms-settings:storagepolicies |
Tablet mode | Режим планшета | ms-settings:tabletmode |
Multitasking | Многозадачность | ms-settings:multitasking |
Projecting to this PC | Проецирование на этот компьютер | ms-settings:project |
Shared experiences | Общие возможности | ms-settings:crossdevice |
Remote Desktop | Удаленный рабочий стол | ms-settings:remotedesktop |
About | О программе | ms-settings:about |
Bluetooth scanners | Принтеры и сканеры | ms-settings:printers |
Mouse | Мышь | ms-settings:mousetouchpad |
Touchpad | Сенсорная панель | ms-settings:devices-touchpad |
Typing | Ввод | ms-settings:typing |
Whell | Колесо | ms-settings:wheel |
Pen Internet) | ||
Network SIM | Передача данных и SIM | ms-settings:network-cellular |
Wi-Fi | Wi-Fi | ms-settings:network-wifi |
Manage known networks | Управление известными сетями | ms-settings:network-wifisettings |
Wi-Fi Calling | Вызов через Wi-Fi | ms-settings:network-wificalling |
Ethernet | Ethernet | ms-settings:network-ethernet |
Dial-up | Набор номера | ms-settings:network-dialup |
DirectAccess | DirectAccess | ms-settings:network-directaccess |
VPN | VPN | ms-settings:network-vpn |
Airplane mode | Режим «в самолете» | ms-settings:network-airplanemode |
Mobile hotspot | Мобильный хот-спот | ms-settings:network-mobilehotspot |
Data usage | Использование данных | ms-settings:datausage |
Proxy | Прокси | ms-settings:network-proxy |
Personalization | Персонализация | ms-settings:personalization |
Background | Фон | ms-settings:personalization-background |
Colors | Цвета | ms-settings:colors |
Lock screen | Экран блокировки | ms-settings:lockscreen |
Themes | Темы | ms-settings:themes |
Fonts (build 17083) | Шрифты | ms-settings:fonts |
Start | Пуск | ms-settings:personalization-start |
Taskbar | Панель задач | ms-settings:taskbar |
Apps app accounts | Адрес электронной почты; учетные записи приложений |
ms-settings:emailandaccounts |
Sign-in options | Параметры входа | ms-settings:signinoptions |
Windows Hello | Windows Hello | ms-settings:signinoptions-launchfaceenrollment |
Access work or school | Доступ к учетной записи места работы |
ms-settings:workplace |
Family language) | ||
Date language | Регион и язык | ms-settings:regionlanguage |
Speech | Распознавание голоса | ms-settings:speech |
Game bar | Меню игры | ms-settings:gaming-gamebar |
Game DVR | DVR для игр | ms-settings:gaming-gamedvr |
Broadcasting | Трансляция | ms-settings:gaming-broadcasting |
Game Mode | Режим игры | ms-settings:gaming-gamemode |
TruePlay | TruePlay | ms-settings:gaming-trueplay |
Xbox Networking | Сеть Xbox | ms-settings:gaming-xboxnetworking |
Narrator | Экранный диктор | ms-settings:easeofaccess-narrator |
Magnifier | Экранная лупа | ms-settings:easeofaccess-magnifier |
High contrast | Цвет и высокая контрастность | ms-settings:easeofaccess-highcontrast |
Audio (build 17035) | Звук | ms-settings:easeofaccess-audio |
Closed captions | Скрытые субтитры | ms-settings:easeofaccess-closedcaptioning |
Speech (build 17035) | Речь | ms-settings:easeofaccess-speechrecognition |
Keyboard | Клавиатура | ms-settings:easeofaccess-keyboard |
Mouse | Мышь | ms-settings:easeofaccess-mouse |
Other options | Другие параметры | ms-settings:easeofaccess-otheroptions |
General | Общие | ms-settings:privacy |
Location | Расположение | ms-settings:privacy-location |
Camera | Камера | ms-settings:privacy-webcam |
Microphone | Микрофон | ms-settings:privacy-microphone |
Motion | Движение | ms-settings:privacy-motion |
Notifications | Уведомления | ms-settings:privacy-notifications |
Speech, inking, diagnostics | Отзывы и диагностика | ms-settings:privacy-feedback |
Background apps | Фоновые приложения | ms-settings:privacy-backgroundapps |
App diagnostics | Диагностика приложения | ms-settings:privacy-appdiagnostics |
Automatic file downloads | Автоматическое скачивание файлов |
ms-settings:privacy-automaticfiledownloads |
Documents | Документы | ms-settings:privacy-documents |
Pictures | Изображения | ms-settings:privacy-pictures |
Videos | Видео | ms-settings:privacy-videos |
Разрешения и журнал | ms-settings:cortana-permissions | |
More details | Подробнее | ms-settings:cortana-moredetails |
Mixed reality | Смешанная реальность | ms-settings:holographic |
Audio and speech | Звук и голосовые функции | ms-settings:holographic-audio |
Environment | Среда | |
Headset display | Отображение гарнитуры | |
Uninstall | Удаление | |
Talk to Cortana | Talk to Cortana | ms-settings:cortana |
Permissions https://windowsnotes.ru/windows-10/komandy-ms-settings-dlya-bystrogo-dostupa-k-nastrojkam-windows-10/» target=»_blank»]windowsnotes.ru[/mask_link]
Добавление настроек приложения в SettingsЕсли у вас есть неигровое приложение (в игровых принято размещать настройки в самом приложение, хотя нет правил без исключений) с некоторым количеством настроек, то вместо того, чтобы реализовывать выбор и хранение настроек в самом приложении можно добавить их в приложение «Настройки/Settings» самого телефона, причем делается это очень быстро и легко.
После этого в списке файлов вашего проекта появится новая папка Settings.bundle, состоящая из файла Root.plist и папки en.lproj. Именно этот файли и содержит всю информацию, на основании которой будет оформлен раздел настроек вашего приложения в Settings, а папка нужна для реализации локализации приложения под разные языки. Если сейчас откомпилировать приложение, то в Settings появится строчка с именем приложения, после выбора которой появится окно, состоящее из заголовка, текстового поля, переключателя и слайдера (ползунка). Расположены они в таком же порядке в каком идут в файле. Добавляя, удаляя и меняя местами строчки в файле можно настроить внешний вид окна настроек в Settings. Теперь подробнее про основные элементы интерфейса и их свойства. У всех элементов есть свойство Type — определяет тип элемента, у всех элементов кроме Slider есть свойство Title — заголовок элемента интерфейса, у всех элементов, кроме Group есть свойство Identifier — определяет идентификатор элемента по которому к нему в последствии можно будет обращаться. Group — имеет только два свойства Title и Type и нужен лишь для создания надписей и визуального разделения настроек на группы.
Откроется папка с уже знакомыми нам файлами, именно в нее и нужно скопировать файлы изображений. Теперь. когда внешний вид окна настроек создан осталось только получить эти настройки из приложения. Для этого необходимо создать объект типа NSUserDefaults, присвоить ему данные настроек приложения и получать значения эти настроек по ключам, которые были указаны в свойстве Identifier каждой из настроек. Работает так же и обратный процесс, то есть можно из приложения изменить настройки и сохранить их: По ссылке можно скачать пример приложения, которое имеет все основные элементы окна настроек, так же есть возможность, меняя положение слайдера и переключателя, менять настройки. Источник: habr.com
Загрузка ...
|