XPOSED源码研究之XposedInstaller(7)SettingsFragment

来源:互联网 发布:json rpc rest 区别 编辑:程序博客网 时间:2024/05/21 07:13
SettingsFragment继承自PreferenceFragment,这个作为配置选项实现起来比较简单,布局文件:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreenxmlns:android="http://schemas.android.com/apk/res/android" > <PreferenceCategoryandroid:key="group_installation" android:title="@string/settings_group_installation"> <de.robv.android.xposed.installer.widget.IntegerListPreferenceandroid:key="install_mode" android:title="@string/settings_install_mode"android:summary="%s" android:entries="@array/install_mode_texts"android:entryValues="@array/install_mode_values" android:defaultValue="0" /></PreferenceCategory> <PreferenceCategory android:key="group_download"android:title="@string/settings_group_download" > <CheckBoxPreferenceandroid:defaultValue="true" android:key="enable_downloads"android:summary="@string/settings_enable_downloads_summary"android:title="@string/settings_enable_downloads" /><de.robv.android.xposed.installer.widget.ListPreferenceSummaryFixandroid:key="release_type_global" android:title="@string/settings_release_type"android:summary="%s" android:entries="@array/release_type_texts"android:entryValues="@array/release_type_values" android:defaultValue="stable" /></PreferenceCategory> <PreferenceCategory android:key="group_app"android:title="@string/settings_group_app" ><de.robv.android.xposed.installer.widget.IntegerListPreference android:key="theme"android:title="@string/settings_theme" android:summary="%s"android:entries="@array/theme_texts" android:entryValues="@array/theme_values"android:defaultValue="0" /> </PreferenceCategory> <PreferenceCategoryandroid:key="group_experimental" android:title="@string/settings_group_experimental"> <CheckBoxPreference android:defaultValue="false" android:key="disable_resources"android:persistent="false"android:summary="@string/settings_disable_resources_summary"android:title="@string/settings_disable_resources" /> <!-- <CheckBoxPreference android:defaultValue="false" android:key="performance_experiment" android:summary="@string/settings_performance_experiment_summary" android:title="@string/settings_performance_experiment" /> --> </PreferenceCategory></PreferenceScreen>
代码通过查找相应控件并处理对应的监听事件即可,例如:
Preference prefTheme = findPreference("theme"); prefTheme.setOnPreferenceChangeListener(new OnPreferenceChangeListener() { @Overridepublic boolean onPreferenceChange(Preference preference, Object newValue) { getActivity().recreate(); return true; } });

LogsFragment、AboutFragment略。
0 0
原创粉丝点击