您的位置:首页 > 移动开发 > Android开发

Android应用开发基础篇(9)-----SharedPreferences

2012-02-27 19:55 316 查看
[b]一、概述[/b]

对于SharedPreferences,我吧它理解为一种简单的数据库,它可以把数据像文件一样存放在系统里面,也可以读出来,但它存放的只是一些简单的数值对,如key-values的形式。如果某些应用需要在退出时保存一些简单的数据以便再次被打开时恢复所需的数据,那么就可以用SharedPreferences来实现。

[b]二、要求[/b]

编写一个简单的应用,要求该应用退出时能保存某些所需要的数据,当应用再次打开时恢复这些数据。

[b]三、实现[/b]

新建工程MyShared,修改/res/layout/main.xml文件,在里面添加一个EditText,两个Button和一个TextView,完整的main.xml文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="请输入内容"
/>

<Button
android:id="@+id/wbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="写入"
/>

<Button
android:id="@+id/rbutton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="读取"
/>

<TextView
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:textSize="20dip"
/>

</LinearLayout>


接着,修改MySharedActivity.java文件,主要定义了一个SharedPreferences对象和一个SharedPreferences.Editor对象,实现两个按钮的监听,完整的MySharedActivity.java文件如下:

package com.nan.shared;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MySharedActivity extends Activity
{
private EditText mEditText = null;
private Button writeButton = null;
private Button readButton = null;
private TextView mTextView = null;

private SharedPreferences mSharedPreferences = null;
private SharedPreferences.Editor mEditor = null;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mEditText = (EditText)this.findViewById(R.id.edittext);
writeButton = (Button)this.findViewById(R.id.wbutton);
readButton = (Button)this.findViewById(R.id.rbutton);
mTextView = (TextView)this.findViewById(R.id.textview);

mSharedPreferences = getSharedPreferences("myshare",MODE_PRIVATE);
mEditor = mSharedPreferences.edit();

writeButton.setOnClickListener(new View.OnClickListener()
{

@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
//获得EditText的内容
String text = mEditText.getText().toString();
//修改
mEditor.putString("hehe", text);
//提交修改
mEditor.commit();
displayToast("写入成功!");
}
});

readButton.setOnClickListener(new View.OnClickListener()
{

@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
//获取所保存的数据
String text = mSharedPreferences.getString("hehe", null);
//把数据显示出来
mTextView.setText(text);
}
});

}
//显示Toast函数
private void displayToast(String s)
{
Toast.makeText(MySharedActivity.this, s, Toast.LENGTH_SHORT).show();
}

}


好了,运行它,如下:



接着输入一行数字,然后点击“写入”,如下:



退出应用,重新运行它并点击“读取”按钮,效果如下:



可以看到之前保存的数据被显示出来了。

OK,完成。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: