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=默认值
【完】
相关文章推荐
- Android——SharedPreferences实现登录界面的记住密码和自动登录功能
- 菜鸟学Android笔记(二十四):ServletContext1
- 在android工程中导入图片
- 无法打开Android SDK Manager的解决办法
- 菜鸟学Android笔记(二十三):ServletConfig
- android style 退出动画 解决退出动画无效问题
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- 6.5android 自定义相机,以及部分手机系统相机的bug
- Android自定义控件
- Android实现QQ第三方登录
- Android应用之最新版本SDKV2.4实现QQ第三方登录
- Qt for android 截屏、Qml保存图片到本地
- Android学习日记(10)
- Android抽象布局——include、merge 、ViewStub .
- Android学习日记(9)
- Spinner的OnItemSelectedListener事件(在布局文件中通过Spinner的android:entries属性加载列表)
- Android中Menu的基本用法 .
- Android之drawable state各个属性详解 .
- 【Android】ListView 优化
- Android学习日记(8)