为有源头话水来——使用SQLite、ContentProvider与Preferences处【3】

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所示。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值