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=默认值
【完】
- Android编程读写首选项
- Cocos2dx 读写文件,首选项
- SD卡读写,首选项,共享首选项
- android 首选项 EditTextPreference
- android 首选项 RingtonePreference
- android 首选项 RingtonePreference
- Android首选项
- android 首选项 RingtonePreference
- Android --- 首选项SharedPreferences应用
- Android首选项框架ListPreference
- Android 首选项的实现
- Android 存储首选项SharedPreferences
- Android基础--首选项(SharedPreferences)
- Android组织首选项PreferenceScreen及首选项框架 ListPreference
- Android组织首选项PreferenceScreen及首选项框架 ListPreference
- 详解Android首选项框架的使用
- 详解Android首选项框架的使用
- 详解Android首选项框架的使用
- Object-c分类和协议
- 计算机网络概述
- String to Integer (atoi)
- 黑马程序员——反射高级应用之动态代理
- 关于mvc的一些体会,看到这一篇感觉领悟到了,所以记录下来
- Android编程读写首选项
- 关于pymongo中“False is not a read preference”问题的解决方案
- 猫猫学iOS 之微博项目实战(2)微博主框架-自定义导航控制器NavigationController
- Level-Set Method
- 黑马程序员ava学习笔记——多线程
- Android中的volley_12_请求重试策略RetryPolicy和DefaultRetryPolicy
- 开源爬虫vidageek crawer实例
- 如何:在Windows中安装MongoDB
- Excel--如何使用EXCEL连续打印快递单