效果描述
使用SharedPreferences实现一个简单的数据存储,在该页面中可以输入姓名和邮箱,有三个按钮分别是:提交,查看,清空。
提交按钮用于将数据保存在指定的文件中;
查看按钮用于查看当前文件中保存的数据;
清空按钮用于清楚文件中的内容;
具体效果如下所示:
使用方法
SharedPreferences用于将数据保存到文件中,即使退出程序后,下次再次依旧能查看到之前保存过的数据,这体现了数据的持久化SharedPreferences作为一个轻量级的存储类,可以保存 简单的key-value信息,实现SharedPreferences的存储步骤如下:
- 使用Activity类的个体SharedPreferences()方法获得SharedPreferences对象。其中存储key-value文件的名称由getSharedPreferences()方法中的第一个参数指定。
SharedPreferences shared=getSharedPreferences(PREFERENCE_NAME, MODE);
2.使用 例如:SharedPreferences接口的edit()方法获取Editor对象;
Editor eidtor=shared.edit(); //声明Editor对象
3.通过Editor对象的putXXX()方法存储key-value键值对数据。其中XXX表示value的不同数据类型。通过commit()方法提交数据
eidtor.putString("name", name.getText().toString());
eidtor.putString("email", email.getText().toString());
eidtor.commit(); //编辑完成,保存
静态页面
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/wname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"
android:textSize="22dp"
android:layout_marginTop="5dp"
android:textColor="#000000" />
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:layout_marginTop="5dp" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/wemail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="邮箱"
android:textSize="22dp"
android:layout_marginTop="5dp"
android:textColor="#000000"/>
<EditText
android:id="@+id/email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textEmailAddress"
android:layout_marginTop="5dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="5dp">
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"/>
<Button
android:id="@+id/look"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查看" />
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="清除" />
</LinearLayout>
<View
android:layout_marginTop="5dp"
android:layout_width="220dp"
android:layout_height="3dp"
android:background="#666666"/>
<TextView
android:layout_marginTop="5dp"
android:id="@+id/show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="在此查看您的内容"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
事件响应
package com.example.sharedpreferencedemo;
/*
* 使用SharedPreferences存储简单的数据并读取
*/
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Gravity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity
{
public static int MODE=MODE_PRIVATE; //访问模式
public static final String PREFERENCE_NAME="test1"; //保存文件的名称
private EditText name;
private EditText email;
private Button submit;
private Button look;
private Button clear;
private TextView show;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=(EditText) findViewById(R.id.name);
email=(EditText) findViewById(R.id.email);
submit=(Button) findViewById(R.id.submit);
look=(Button) findViewById(R.id.look);
clear=(Button) findViewById(R.id.clear);
show=(TextView) findViewById(R.id.show);
//获取对象
final SharedPreferences shared=getSharedPreferences(PREFERENCE_NAME, MODE);
//为查看按钮添加事件监听,查看文件中的内容
look.setOnClickListener(new OnClickListener()
{
public void onClick(View arg0) {
String nameLook=shared.getString("name", "暂无"); //key-value
String emailLook=shared.getString("email","暂无");
show.setText("姓名:"+nameLook+"\n"+"邮箱:"+emailLook+"\n");
clearEdit(); // 清空编辑框的内容
}
});
//为提交按钮添加事件响应,将编辑框的内容保存到文件中
submit.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Editor eidtor=shared.edit(); //声明Editor对象
if(name.getText()!=null && email.getText()!=null)
{
if(!"".equals(name.getText().toString()) && !"".equals(email.getText().toString()))
{
eidtor.putString("name", name.getText().toString());
eidtor.putString("email", email.getText().toString());
eidtor.commit(); //编辑完成,保存
showToast("成功添加信息!");
look.performClick(); //调用查看按钮的效果
}
}
}
});
//为清空按钮添加事件监听,清除文件中保存的内容
clear.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View arg0)
{
Editor eidtor=shared.edit(); //声明Editor对象
eidtor.clear();
eidtor.commit();
showToast("信息清除成功!!!");
look.performClick(); //调用查看按钮的效果
}
});
}
//清空编辑框的内容
private void clearEdit()
{
name.setText("");
email.setText("");
}
private void showToast(String string)
{
Toast toast=Toast.makeText(this,string, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
本文介绍了一个使用SharedPreferences实现数据存储的实例,包括提交、查看和清空功能。通过SharedPreferences,可以实现轻量级的数据持久化,保存简单的key-value信息。在Android应用中,当用户输入姓名和邮箱后,点击按钮,数据会被保存、读取或清除,展示了SharedPreferences的使用方法。
797

被折叠的 条评论
为什么被折叠?



