概述9.4 使用Preferences 存储应用程序数据 Preferences是一种轻量级的数据存储机制,它将一些简单数据类型的数据,包括boolean类型、int类型、float类型、long类型以及String类型的数据,以键值对的形式存储在应用程序的私有1 Preferences目录(/data/data/<包名>/shared_prefs/)中。这种Preferences机制广泛应用于存储
9.4 使用Preferences 存储应用程序数据 | | | | |
Preferences是一种轻量级的数据存储机制,它将一些简单数据类型的数据,包括boolean类型、int类型、float类型、long类型以及String类型的数据,以键值对的形式存储在应用程序的私有1 Preferences目录(/data/data/<包名>/shared_prefs/)中。这种Preferences机制广泛应用于存储 应用程序中的配置信息。 在AndroID平台上,只需要用一个Context的对象调用getSharedPreferences(String name, int mode)方法传入Preferences文件名和打开模式,就可以获得一个SharedPreferences的对象。 若该Preferences文件不存在,在提交数据后会创建该Preferences文件。利用SharedPreferences 对象可以调用一些getter方法,传入相应的键来读取数据。要对Preferences文件的数据进行修改, 首先利用SharedPreferences对象调用edit()方法获得一个内部类Editor的对象,然后用这个 Editor对象就可以对Preferences文件进行编辑了。注意,编译完毕后一定要调用commit()方法, 这样才会把所做的修改提交到Preferences文件当中去。下面是一个利用Preferences机制来保存 EditText中所输入的字符串的示例。 首先构造一个简单的用户界面,只显示一个EditText控件。 1 <?xml version="1.0" enCoding="utf-8"?> 2 <linearLayout xmlns:androID="http://schemas.android.com/apk/res/android " 3 androID:orIEntation="vertical" 4 androID:layout_wIDth="fill_parent" 5 androID:layout_height="fill_parent" 6 > 7 <EditText 8 androID:ID="@+ID/edittext" 9 androID:layout_wIDth="fill_parent" 10 androID:layout_height="wrap_content" /> 11 </linearLayout> 然后在代码中实现程序的功能。在onCreate()方法的实现中,将EditText的内容设置为上 一次退出时保存在Preferences文件中的字符串。而在onDestroy()方法中,则实现了将当前 EditText中的字符串存储到Preferences文件。下面是详细的实现代码。 package com.studio.androID.chp9.ex6; import androID.app.Activity; import androID.content.SharedPreferences; import androID.os.Bundle; import androID.Widget.EditText; public class Preferences extends Activity { EditText edit; SharedPreferences sp; final static String PREF = "MY_PREF"; final static String EDIT_KEY = "EDIT_CONTENT"; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); edit = (EditText)findVIEwByID(R.ID.edittext); sp = getSharedPreferences(PRE,0); String initial = sp.getString(EDIT_KEY,null); if (initial != null) { edit.setText(initial); } } @OverrIDe public voID onDestroy() { SharedPreferences.Editor editor = sp.edit(); editor.putString(EDIT_KEY,String.valueOf(edit.getText())); editor.commit(); super.onDestroy(); } } 最后,此应用程序在每次启动时会将上次退出时EditText中的内容恢复,如图9-9所示。 这时我们可以通过adb shell进入该程序的私有数据目录,查看Preferences文件的具体的存 储形式,如图9-10所示。 |
总结
以上是内存溢出为你收集整理的为有源头话水来——使用SQLite、ContentProvider与Preferences处【3】全部内容,希望文章能够帮你解决为有源头话水来——使用SQLite、ContentProvider与Preferences处【3】所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
评论列表(0条)