Shared Prefernces 是一种相对简单的数据存储方式,实质上它把需要记录的数据以“键——值”的方式写入到一张xml文件中,然后这张XML文件并不是用户手动生成的。在本实例中想xml文件存放在以下的目录中:data/data/com.creative.SharedPreferencesTest/shared_prefs
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<EditText
android:id = "@+id/editext01"
android:layout_width = "fill_parent"
android:layout_height = "200px"
/>
<Button
android:id = "@+id/readbtn"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "读取文件"
/>
<Button
android:id = "@+id/writebtn"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:text = "写入文件"
/>
</LinearLayout>
package com.creative.SharedPreferencesTest;
import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class SharedPreferencesTestActivity extends Activity
{
private EditText _editText = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
_editText = (EditText)findViewById(R.id.editext01);
Button readBtn = (Button)findViewById(R.id.readbtn);
Button writeBtn = (Button)findViewById(R.id.writebtn);
// 读取文本
readBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
readMessage();
}});
// 写入文本
writeBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
writeMessage();
}});
}
// 读取文件
public void readMessage()
{
// 获取当前的 SharedPreferences对象
SharedPreferences message = getPreferences(Activity.MODE_PRIVATE);
// 获取消息
String text = message.getString("message", "");
_editText.setText(text);
}
// 写入文件
public void writeMessage()
{
// 创建一个SharedPreferences对象
SharedPreferences message = getPreferences(0);
// 编辑SharedPreferences对象
SharedPreferences.Editor editor = message.edit();
// 插入一个数据
editor.putString("message", _editText.getText().toString());
// 提交数据
editor.commit();
}
}