网站建设业务流程,网站管理怎么做,如何提高网站的搜索,wordpress自动添加视频播放我想大家对于android的系统配置界面应该不会陌生吧#xff0c;即便陌生#xff0c;那么下面的界面应该似曾相识吧#xff0c;假若还是不认识#xff0c;那么也没有关系#xff0c;我们这一节主要就是介绍并讲解android 中系统配置界面的使用#xff0c;相信大家看完本节后… 我想大家对于android的系统配置界面应该不会陌生吧即便陌生那么下面的界面应该似曾相识吧假若还是不认识那么也没有关系我们这一节主要就是介绍并讲解android 中系统配置界面的使用相信大家看完本节后一定能知道怎么使用这些东西了。 从上述界面中其实是一个界面我们可以看到有2组元素第一组为自动更新更新频率。第二组为是否登录账号密码。 其实分组是为了方便管理而已。这里主要使用到了选择列表编辑框等Preference. 我们还是来温习下基础知识吧。 一基础知识 通常我们开发一个程序时会需要给用户提供一个设置界面使用户可以对程序的一些参数进行设置。通常我们使用Preferences的键值对存储方式来对Android数据持久化。 android.content.SharedPreferences是一个接口用来获取和修改持久化存储的数据。有三种方式可以获取系统中持久化的数据这些数据时存放在.xml中的 1public SharedPreferences getPreferences (int mode)只隶属于activity对象并以这个对象为文件名。 2public SharedPreferences getSharedPreferences (String name, int mode)隶属于整个应用以name名称保存。 3public static SharedPreferences getDefaultSharedPreferences (Context context)隶属于整个应用保存PreferenceActivity中的设置根据包名和PreferenceActivity的布局文件来起一个名字保存。 SharedPreferences可以保存Boolean、Int、Float、Long、String等类型。一般是SharedPreferences.Editor的putXXX方法保存并commit方法提交或者是remove(),方法移除clear()方法清空当然操作完毕后需要commit()方法提交。 一般的可以使用SharedPreferences保存持久化数据比如登陆账号密码以及相对固定设置参数等等看你应用需要。 既然使用到设置参数界面那么我们可以来认识下一下几个类标签 1PreferenceScreen 持久化设置界面的顶级容器代表一屏里面可以嵌套屏幕嵌套的时候可以点击跳转到另外一屏。 2PreferenceCategory 当前屏的分组容器说白了就是为了划分组而已。 3CheckBoxPreferenceListPreferenceEditTextPreference等等组件。这些都是常见的对应上述的选择标签、列表标签、编辑标签。 上述组件都有titile,summary,key属性。title标题描述summary详细描述key保存SharedPreferences时候的键。 二实战 既然有了上述基础知识后我们就可以来做如上的设置界面了在上述界面中我们知道当前配置界面只需一屏没有额外的跳转那么需要PreferenceScreen不需要嵌套其他PreferenceScreen而设置界面分为两栏那么需要两个PreferenceCategory并且这个PreferenceCategory可以设置标题。同时根据界面我们还需要CheckBoxPreferenceListPreferenceEditTextPreference等。操作如图 当然了我们还是实际操作下吧然后实际联系理论理论联系实际太抽象我们首先编写使用工具选择标签然后形成代码存放在xml文件夹中如下 View Code ?xml version1.0 encodingutf-8?PreferenceScreen xmlns:androidhttp://schemas.android.com/apk/res/android android:titlestring/setting PreferenceCategory android:titlestring/update CheckBoxPreferenceandroid:keystring/update_key android:summaryOnstring/auto_update_switch_summary_on android:summaryOffstring/auto_update_switch_summary_off android:summarystring/auto_update_setting android:titlestring/auto_update_switch_title android:defaultValuetrue/ListPreferenceandroid:keystring/auto_update_frequency_key android:dialogTitlestring/auto_update_frequency_title android:entriesarray/auto_frequency_name android:entryValuesarray/auto_frequency_value android:negativeButtonTextstring/cancel android:summarystring/auto_update_frequency_summary android:titlestring/auto_update_frequency_title //PreferenceCategoryPreferenceCategory android:titlestring/other CheckBoxPreferenceandroid:keystring/isneilflag_key android:titlestring/isneilflag android:disableDependentsStatetrue/EditTextPreferenceandroid:dependencystring/isneilflag_key android:keystring/username_key android:summarystring/username_summary android:titlestring/username /EditTextPreferenceandroid:dependencystring/isneilflag_key android:keystring/password_key android:summarystring/password_summary android:titlestring/password //PreferenceCategory/PreferenceScreen 当然这里使用到了一些文件代码一并释放 View Code ?xml version1.0 encodingutf-8?resourcesstring namehelloHello World, PreferenceActivityDemoActivity!/stringstring nameapp_namePreferenceActivityDemo/stringstring namecancel取消/stringstring nameother其他/stringstring namesetting设置/stringstring nameupdate更新/stringstring nameauto_update_switch_title自动更新/stringstring nameauto_update_setting自动更新设置/string string nameauto_update_switch_summary_on开启自动更新/string string nameauto_update_switch_summary_off关闭自动更新/string string nameauto_update_frequency_title更新频率/string string nameauto_update_frequency_summary设置更新周期/string string nameisneilflag是否匿名登录/stringstring nameusername帐号/string string namepassword密码/stringstring nameusername_summary提供您帐号/string string namepassword_summary提供您密码/string string nameupdate_keyupdate_key/stringstring nameauto_update_frequency_keyauto_update_frequency_key/string string nameisneilflag_keyisneilflag_key/string string nameusername_keyusername_key/string string namepassword_keypassword_key/string /resources View Code ?xml version1.0 encodingutf-8?resourcesstring-array nameauto_frequency_nameitem10分钟/item item30分钟/item item1小时/item item12小时/item/string-arraystring-array nameauto_frequency_valueitem10/item item30/item item60/item item720/item /string-array/resources 接下来我们就来解释下xml文件夹中设置文件的一些内容吧: android:keystring/update_key 这个是我们持久化时SharedPreferences保存的键 android:summaryOnstring/auto_update_switch_summary_on 选中后显示内容 android:summaryOffstring/auto_update_switch_summary_off 未选中后显示内容 android:summarystring/auto_update_setting 平常状态显示内容 android:titlestring/auto_update_switch_title 标题 android:defaultValuetrue 默认值 android:dialogTitlestring/auto_update_frequency_title 对话框标题 android:entriesarray/auto_frequency_name 列表项显示名称 android:entryValuesarray/auto_frequency_value 列表项值 android:disableDependentsStatetrue 当CheckBoxPreference的值为真的时候禁用依赖于该设置的其他设置项。 android:dependencystring/isneilflag_key 根据上述设置依赖于CheckBoxPreference的真值进行启用与禁用。 注意我们可以从上图知道ListPreference是继承之Preference以及DialogPreference的那么就有它们的属性以及方法了。 好了设置界面已经定义完成我们来定义一个activity继承之PreferenceActivity并使之显示吧。 当然噩梦可以再使之继承接口OnPreferenceChangeListener,OnPreferenceClickListener当PreferenceActivity中的某一个Preference进行了点击或者改变的操作时都会回调接口中的函数。 具体代码如下 View Code package com.dongzi;import android.content.SharedPreferences;import android.os.Bundle;import android.preference.CheckBoxPreference;import android.preference.EditTextPreference;import android.preference.ListPreference;import android.preference.Preference;import android.preference.Preference.OnPreferenceChangeListener;import android.preference.Preference.OnPreferenceClickListener;import android.preference.PreferenceManager;import android.preference.PreferenceActivity;import android.util.Log;public class PreferenceActivityDemoActivity extends PreferenceActivity implements OnPreferenceChangeListener,OnPreferenceClickListener{static final String TAGPreferenceActivityDemoActivity; SharedPreferences preferencenull; CheckBoxPreference updateCheckBoxPreferencenull; ListPreference lististPreferencenull; CheckBoxPreference isneilflag_CheckBoxPreferencenull; EditTextPreference usernameEditTextPreferencenull; EditTextPreference passwordEditTextPreferencenull; Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//设置显示Preferences addPreferencesFromResource(R.xml.preference);//获得SharedPreferences preferencePreferenceManager.getDefaultSharedPreferences(this);//找到preference对应的Key标签并转化 updateCheckBoxPreference(CheckBoxPreference)findPreference(getString(R.string.update_key)); lististPreference(ListPreference)findPreference(getString(R.string.auto_update_frequency_key)); isneilflag_CheckBoxPreference(CheckBoxPreference)findPreference(getString(R.string.isneilflag_key)); usernameEditTextPreference(EditTextPreference)findPreference(getString(R.string.username_key)); passwordEditTextPreference(EditTextPreference)findPreference(getString(R.string.password_key));//为Preference注册监听 updateCheckBoxPreference.setOnPreferenceChangeListener(this); updateCheckBoxPreference.setOnPreferenceClickListener(this); lististPreference.setOnPreferenceClickListener(this); lististPreference.setOnPreferenceChangeListener(this); isneilflag_CheckBoxPreference.setOnPreferenceChangeListener(this); isneilflag_CheckBoxPreference.setOnPreferenceClickListener(this); usernameEditTextPreference.setOnPreferenceChangeListener(this); passwordEditTextPreference.setOnPreferenceChangeListener(this); } Overridepublic boolean onPreferenceClick(Preference preference) {//判断是哪个Preference改变了 if(preference.getKey().equals(getString(R.string.update_key))){ Log.e(TAG, getString(R.string.update_key)); }else if(preference.getKey().equals(getString(R.string.isneilflag_key))){ Log.e(TAG, getString(R.string.isneilflag_key)); }//返回true表示允许改变 return true; } Overridepublic boolean onPreferenceChange(Preference preference, Object newValue) {//判断是哪个Preference改变了 if(preference.getKey().equals(getString(R.string.username_key))){//账号 Log.e(TAG, getString(R.string.username_key)); }else if(preference.getKey().equals(getString(R.string.password_key))){//密码 Log.e(TAG, getString(R.string.password_key)); }else if(preference.getKey().equals(getString(R.string.auto_update_frequency_key))){//列表 Log.e(TAG, getString(R.string.auto_update_frequency_key)); }//返回true表示允许改变 return true; }} 从上述代码可知 1设置显示Preferences可以调用方法addPreferencesFromResource(R.xml.preference); 传递preference文件即可。 2然后通过findPreference();方法找到键的类标签 3我们定义2个监听接口监听参数是否设置成功。 4在监听接口中返回true就是设置允许提交。 结果打印如下 成功 也许你会问我们这里并没有使用 SharedPreferences settings PreferenceManager.getDefaultSharedPreferences(this); settings.getXXXX();settings.putXXXX();以及commit(等方法设置、获取并提交值啊是的在这里我们不需这样因为 当PreferenceActivity中的内容改变时Android系统会自动进行保存和持久化维护我们只需要在要用的设置界面中数据的地方进行读取就可以了。当然您可以在其他界面使用SharedPreferences settings PreferenceManager.getDefaultSharedPreferences(this);等类方法来获取数据看能不能获取到 linker : http://www.cnblogs.com/zhangdongzi/archive/2012/01/05/2313519.html 转载于:https://www.cnblogs.com/MMLoveMeMM/articles/3338547.html