您的位置:首页 > 移动开发 > Android开发

Android编程读写首选项

2015-06-06 08:22 441 查看

示例

在很多应用里面,时常见到形如下图的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</it
9c96
em>
<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);
//下面是加入另一个XML
addPreferencesFromResource(R.xml.preference2);


以上就是创建一个分隔符所需要的代码了。写好之后,运行测试。



成功完成。

【例04】

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

可以这样:

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


KEY=key

DEFAULTVALUE=默认值

【完】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: