首选项这个名词对于熟悉Android的朋友们一定不会感到陌生,它经常用来设置软件的运行参数。
Android提供了一种健壮并且灵活的框架来处理首选项。它提供了简单的API来隐藏首选项的读取和持久化,并且提供了一个优雅的首选项界面。
首先,我们来看下面这款软件的首选项界面:
这款软件使用了好几种类型的首选项,每一种首选项都有其独特的用法,下面我们来了解一下几种常见的首选项:
CheckBoxPreference:用来打开或关闭某个功能
ListPreference:用来从多个选项中选择一个值;
EditTextPreference:用来配置一段文字信息;
Preference:用来执行相关的自定义操作(上图中的清除缓存、历史记录、表单、cookie都属于此项);
RingtonePreference:专门用来为用户设置铃声。
当我们使用首选项框架时,用户每更改一项的值后,系统就会立即在/data/data/[PACKAGE_NAME]/shared_prefs下生成一个[PACKAGE_NAME]_preferences.xml的文件,文件会记录最新的配置信息。
那么如何使用首选想框架呢?我们需要以下几步操作:
1.建立一个首选项的xml配置文件,放在项目的/res/xml目录下面;
2.新建一个Activity,继承android.preference.PreferenceActivity,然后在onCreate方法中加载我们的首选项配置文件。
下面,我就为大家演示一下首选项框架的配置和使用:
我们新建一个prefs项目,项目结构如下:
我们要实现的功能跟上面那款软件的很相似,下面我来说明一下这个项目的整体流程:
1.主界面。显示用户昵称,有三个参数,昵称文字、字体大小和背景颜色。首次进入时,使用默认值。
2.按下menu键中的settings项,跳转到首选项页面,进行参数选择。
3.按下返回键,返回主界面,设定后的参数生效。
首先,让我们来看一下主界面的配置文件,非常简单,就一个TextView:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/textView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:textColor="#FF0000"/> </LinearLayout> |
然后,我们需要在主界面里根据配置参数设置TextView的外观以及背景,MainActivity.java代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
package com.scott.prefs; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { private static final int SETTINGS_ID = 0; private static final int EXIT_ID = 1; private TextView textView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); textView = (TextView) findViewById(R.id.textView); showSettings(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); menu.add(0, SETTINGS_ID, 0, "Settings"); menu.add(0, EXIT_ID, 0, "Quit"); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == SETTINGS_ID) { Intent intent = new Intent(MainActivity.this, /span>intent = new Intent(MainActivity.this, 项界面:
这款软件使用了好几种类型的首选项,每一种首选项都有其独特的用法,下面我们来了解一下几种常见的首选项: CheckBoxPreference:用来打开或关闭某个功能 ListPreference:用来从多个选项中选择一个值; EditTextPreference:用来配置一段文字信息; Preference:用来执行相关的自定义操作(上图中的清除缓存、历史记录、表单、cookie都属于此项); RingtonePreference:专门用来为用户设置铃声。 当我们使用首选项框架时,用户每更改一项的值后,系统就会立即在/data/data/[PACKAGE_NAME]/shared_prefs下生成一个[PACKAGE_NAME]_preferences.xml的文件,文件会记录最新的配置信息。 那么如何使用首选想框架呢?我们需要以下几步操作: 1.建立一个首选项的xml配置文件,放在项目的/res/xml目录下面; 2.新建一个Activity,继承android.preference.PreferenceActivity,然后在onCreate方法中加载我们的首选项配置文件。 下面,我就为大家演示一下首选项框架的配置和使用: 我们新建一个prefs项目,项目结构如下: 我们要实现的功能跟上面那款软件的很相似,下面我来说明一下这个项目的整体流程: 1.主界面。显示用户昵称,有三个参数,昵称文字、字体大小和背景颜色。首次进入时,使用默认值。 2.按下menu键中的settings项,跳转到首选项页面,进行参数选择。 3.按下返回键,返回主界面,设定后的参数生效。 首先,让我们来看一下主界面的配置文件,非常简单,就一个TextView:
然后,我们需要在主界面里根据配置参数设置TextView的外观以及背景,MainActivity.java代码如下:
|