2022年Android软件开发-[整 2.pdf
《2022年Android软件开发-[整 2.pdf》由会员分享,可在线阅读,更多相关《2022年Android软件开发-[整 2.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Android 软件开发 11-12 Android 软件开发之 PreferenceActivity中的组件(十一)1.PreferenceActivity 介绍PreferenceActivity 继承 ListActivity 它是以一个列表的形式在展现内容,它最主要的特点是添加 Preference可以让控件的状态持久化储存,举个例子比如用户选中checkbox 后 退出应用然后在进入应用,这时用户希望看到的是checkbox 被选中,所以软件须要记录用户每次操作的过程并且持久储存,在进入应用的时候须要判断这些久储存的数据然后将系统控件的状态呈现在UI 中。尤其是软件开发肯定会有一堆设
2、置选项选项,每次进入Activity都去手动的去取储存的数据,这样代码会变得很复杂很麻烦。这个时候 Preference就出来了,它就是专门解决这些特殊的选项保存与读取的显示。用户每次操作事件它会及时的以键值对的形式记录在SharedPreferences中, Activity每次启动名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 它会自动帮我们完成数据的读取以及UI 的显示。android开发中一共为我们提供了4 个组件,分
3、别是 CheckBoxPreference组件、EditTextPreference组件、 ListPreference组件、 RingtonePreference组件,下面我用一个例子一一向同学们介绍一下。2.CheckBoxPreference组件CheckBoxPreference 选中为 true 取消选中为false 它的值会以 boolean 的形式储存在SharedPreferences中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - -
4、 - - - - - - import android.content.Context; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preferen
5、ce.OnPreferenceClickListener; import android.widget.Toast; publicclass CheckBoxActivity extends PreferenceActivity 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - Context mContext = null ; Overrideprotectedvoid onCreate(Bundle savedInstanc
6、eState) super .onCreate(savedInstanceState); / 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences addPreferencesFromResource(R.xml.checkbox); mContext = this ; /CheckBoxPreference组件 CheckBoxPreference mCheckbox0 = (CheckBoxPreference) findPreference(checkbox_0 ); mCheckbox0.setOnPreferenceClickListener
7、(new OnPreferenceClickListener() Overridepublicboolean onPreferenceClick(Preference preference) / 这里可以监听到这个CheckBox 的点击事件returntrue ; ); mCheckbox0.setOnPreferenceChangeListener(new OnPreferenceChangeListener() Overridepublicboolean onPreferenceChange(Preference arg0, Object newValue) / 这里可以监听到check
8、Box 中值是否改变了/ 并且可以拿到新改变的值 Toast.makeText(mContext, checkBox_0 改变的值为 + (Boolean)newValue, Toast.LENGTH_LONG).show(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - returntrue ; ); CheckBoxPreference mCheckbox1 = (CheckBoxPreference) findPre
9、ference(checkbox_1 ); mCheckbox1.setOnPreferenceClickListener(new OnPreferenceClickListener() Overridepublicboolean onPreferenceClick(Preference preference) / 这里可以监听到这个CheckBox 的点击事件returntrue ; ); mCheckbox1.setOnPreferenceChangeListener(new OnPreferenceChangeListener() Overridepublicboolean onPref
10、erenceChange(Preference arg0, Object newValue) / 这里可以监听到checkBox 中值是否改变了/ 并且可以拿到新改变的值 Toast.makeText(mContext, checkBox_1 改变的值为 + (Boolean)newValue, Toast.LENGTH_LONG).show(); returntrue ; ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - -
11、 3.EditTextPreference组件EditTextPreference 点击后会弹出一个输入框,输入的内容会以字符串的的形式储存在SharedPreferences中。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 38 页 - - - - -
12、- - - - import android.content.Context; import android.os.Bundle; import android.preference.EditTextPreference; import android.preference.PreferenceActivity; publicclass EditTextActivity extends PreferenceActivity Context mContext = null ; Overrideprotectedvoid onCreate(Bundle savedInstanceState) su
13、per .onCreate(savedInstanceState); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 38 页 - - - - - - - - - / 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences addPreferencesFromResource(R.xml.edittext); mContext = this ; / EditTextPreference组件 EditTextPreference mE
14、ditText = (EditTextPreference) findPreference(edit_0); / 设置 dialog按钮信息 mEditText.setPositiveButtonText(确定 ); mEditText.setNegativeButtonText(取消 ); / 设置按钮图标 mEditText.setDialogIcon(R.drawable.jay); 4.ListPreference组件在 res/array中先写两个数组,一个用与list的显示内容,一个用户list的选中数值。 10 mins. 20 mins. 30 mins. 60 mins. 名
15、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - 600000 1200000 1800000 3600000ListPreference点击后会弹出一个列表框,选中后会将选中的内容( 上面数组中的值 ) 会以字符串的的形式储存在SharedPreferences中。import android.os.Bundle; import android.preference.PreferenceActivity; publicclass
16、 ListActivity extends PreferenceActivity 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - Overrideprotectedvoid onCreate(Bundle savedInstanceState) super .onCreate(savedInstanceState); / 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences addP
17、referencesFromResource(R.xml.list); 5.RingtonePreference组件RingtonePreference点击后会弹出一个系统铃声的列表框,选中后会将选中的内容(uri字符集 ) 会以字符串的的形式储存在SharedPreferences中。android:ringtoneType 系统一共提供了4 中响铃模式的类型分别为铃声 (ringtone) 通知( notification) 警告 (alarm) 全部 (all) 模拟器默认是没有铃声的,下图中的铃声我是将歌曲文件拷贝到SD卡中,设置铃声后才会出现的。如果觉得拷贝麻烦可以使用豌豆荚或者91
18、 助手将歌曲文件放入手机SD卡中,在铃声设置那里设置一下在这里就会出现。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 38 页 - - - - - - - - - import android.os.Bundle; import android.preference.PreferenceActivity; publicclass RingtoneActivity extends PreferenceActivity Overrideprotectedvoid onCr
19、eate(Bundle savedInstanceState) super .onCreate(savedInstanceState); / 从资源文件中添Preferences ,选择的值将会自动保存到SharePreferences addPreferencesFromResource(R.xml.ringtone); 5. 自定义控件使用系统的控件在显示方面难免会有些单一,如果想做一个好看的界面就需要使用自定义Preference 。下面我简单说明一下如何编写自定义Preference 。首先在 res/layout中添加 preferences文件名师资料总结 - - -精品资料欢迎下
20、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 38 页 - - - - - - - - - android:background=drawable/preference_mid_background 通过这一行可以设置这个按钮的点击、选中默认的显示状态,这样可以让你的按钮更加好看。须要在res/drawable中添加 xml 文件android:state_facused :为控件选中显示android:state_pressed:为控件按下显示最后一个为默认显示import android.conten
21、t.Context; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceActivity; import android.preference.Preference.OnPreferenceClickListener; import android.widget.Toast; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共
22、 38 页 - - - - - - - - - publicclass AllActivity extends PreferenceActivity /* 自定义布局 A*/ Preference preference0 = null ; /* 自定义布局 B*/ Preference preference1 = null ; Context mContext = null ; Overrideprotectedvoid onCreate(Bundle savedInstanceState) super .onCreate(savedInstanceState); / 从资源文件中添Prefe
23、rences ,选择的值将会自动保存到SharePreferences addPreferencesFromResource(R.xml.all); mContext = this ; preference0 = findPreference(pref_key_0); preference0.setOnPreferenceClickListener(new OnPreferenceClickListener() Overridepublicboolean onPreferenceClick(Preference preference) Toast.makeText(mContext, 自定义布
24、局A被按下 , Toast.LENGTH_LONG).show(); returnfalse ; ); preference1 = findPreference(pref_key_1); preference1.setOnPreferenceClickListener(new OnPreferenceClickListener() Override名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 38 页 - - - - - - - - - publicboolean o
25、nPreferenceClick(Preference preference) Toast.makeText(mContext, 自定义布局B被按下 , Toast.LENGTH_LONG).show(); returnfalse ; ); 读取数据在 PreferenceActivity中可以用下面这种方式拿到SharedPreferences中储存的数值,通过PreferenceManager.getDefaultSharedPreferences(this) 方法拿到控件默认储存的sharedPreferences对象。SharedPreferences prefs =Preferenc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年Android软件开发-整 2022 Android 软件 开发
限制150内