Android编程读写首选项

来源:互联网 发布:新浪云平台数据库 编辑:程序博客网 时间:2024/06/04 18:51

示例

在很多应用里面,时常见到形如下图的Activity:
这里写图片描述
这种界面已经很普通了,许多小应用里面也有。但是大家知道怎样创建这种页面吗?其实很简单。

【例01】

在ADT中创建一个Android Application Project,并创建一个新的Activity。在XML文件中添加一个按钮“打开设置界面”。XML代码如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context="net.csdn.settings.MainActivity" >    <Button        android:id="@+id/button1"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:text="打开设置" /></LinearLayout>

为了方便布局,我已经将其调为LinearLayout。宽度设为fill_parent(填充父级容器,这里是指宽度填满屏幕)。
好了。再将java代码进行一些修改:

package net.csdn.settings;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);//      findViewById(R.id.button1).setOnClickListener(new OnClickListener(){//          @Override//          public void onClick(View arg0) {//          }//      });    }}

这里的onClick方法过会儿再实现。
现在创建一个新的Java类,将“超类”设为android.preference.PreferenceActivity。完成它的创建。默认Java文件如下:

package net.csdn.settings;import android.preference.PreferenceActivity;public class Preference extends PreferenceActivity {}

现在增添了一个新的Activity,需要在Manifest中声明。声明添加在”application”段中如下所示:

<activity            android:name=".Preference"            android:label="设置" />

实现onClick方法,如下所示:

findViewById(R.id.button1).setOnClickListener(new OnClickListener(){            @Override            public void onClick(View arg0) {                startActivity(new Intent(MainActivity.this,Preference.class));            }        });

接下来再Preference类中实现onCreate方法。

@Override    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);    }

要显示这个界面,我们需要定义设置的内容。在/res文件夹中新建一个/xml文件夹,并新建一个XML文件,名称可以设置为”preference.xml”。注意要把ResourceType设置为”Preference”。

<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" ></PreferenceScreen>

以上是默认的代码。在PreferenceScreen段中可以任意增加Preference。以下为我写的代码:

    <CheckBoxPreference         android:defaultValue="false"        android:key="checkbox"        android:summaryOn="我被开启了"        android:summaryOff="我被关闭了"        android:title="我是CheckBox"     />    <EditTextPreference         android:key="editText"         android:title="我是editText"        android:enabled="true"    />    <SwitchPreference         android:defaultValue="false"        android:key="switch"        android:summaryOn="我被开启了"        android:summaryOff="我被关闭了"        android:title="我是Switch"     />

defaultValue:默认值
key:键值(在SharedPreference中存储)
summaryOn:开启时的说明
summaryOff:关闭时的说明
(可以用summary:说明代替)
这样还没有完,需要在刚刚的Preference.java中加载这个xml。语法如下:

addPreferencesFromResource(R.xml.preference);

这个方法已经被弃用了,不过当前大多数程序还是在使用这个方法。本例中我们也是用它。好了,运行一下。
这里写图片描述
这里写图片描述
这里写图片描述
可以看到,很容易就可以创建出一个标准的设置界面。

【例02】

上面是一些较为简单的控件,接下来我们来学习如何使用列表框类的控件。
首先我们需要在/res/values/strings.xml中加入如下信息(当然,可以将ABCDEF替换为你的信息):

<string-array name="list">        <item>A</item>        <item>B</item>        <item>C</item>        <item>D</item>        <item>E</item>        <item>F</item></string-array><string-array name="listvalue">        <item>1</item>        <item>2</item>        <item>3</item>        <item>4</item>        <item>5</item>        <item>6</item></string-array>

string-array:字符串数组
item:项目
其中,上面的string-array表示值的名称,下面的表示值。
在Preference.xml中加入以下信息:

<ListPreference        android:defaultValue="1"        android:entries="@array/list"        android:entryValues="@array/listvalue"        android:key="list"        android:title="我是list" />

defaultValue:默认值
entries:内容列表
entryValues:值列表
key:键(在SharedPreference中存储)
好了,现在重新运行看看效果。
这里写图片描述
可以看到,我们的目标已经达成了。

【例03】

在许多应用程序中,一个分类和一个分类之间还有分隔符。本例子来试着创建一个分隔符。
首先,要创建分隔符,需要多个首选项的xml。所以这里我们再新建一个XML。这是我的示例代码:

<?xml version="1.0" encoding="utf-8"?><PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >    <CheckBoxPreference         android:defaultValue="false"        android:key="checkbox2"        android:summaryOn="我被开启了"        android:summaryOff="我被关闭了"        android:title="我是CheckBox2"     /></PreferenceScreen>

以上我们就完成了XML文件的配置。打开JAVA文件。

//下面是创建分隔符PreferenceCategory fakeHeader = new PreferenceCategory(this);fakeHeader.setTitle("分类");getPreferenceScreen().addPreference(fakeHeader);//下面是加入另一个XMLaddPreferencesFromResource(R.xml.preference2);

以上就是创建一个分隔符所需要的代码了。写好之后,运行测试。
这里写图片描述
成功完成。

【例04】

我们知道,创建设置页面,最重要的就是在程序中读取他们。本例,我们就来尝试读取Preference项的值。
可以这样:

PreferenceManager.getDefaultSharedPreference().getBoolean(KEY,DEFAULTVALUE);

KEY=key
DEFAULTVALUE=默认值

【完】

0 0
原创粉丝点击