数据存储2--SharedPreferences

来源:互联网 发布:dva防御矩阵 编辑:程序博客网 时间:2024/05/22 01:27

                              数据存储2--SharedPreferences


       SharedPreferences 是以键值对的方式存储的。

       默认存储的地址是data/data/<packagename>/shared_prefs/

      获得SharedPreferences 对象有3中方式:

     1.Context类中的getSharedPreferences()方法。

         接收2个参数,一个是命名文件名,第二个参数有MODE_PRIVATE(或者0)和MODE_MULTI_PROCESS。一个表示当前的程序才可以对这个SharedPreferences文件进行读写,一个是用于多个进程中对同一个SharedPreferences 文件进行读写。

     2.Activity类中的getPreferences()方法

        这个方法只接收一个操作模式参数,因为系统会将当前活动的类名当作存储的文件名。

    3.PreferenceManag类中的getDefaultSharedPreferences()方法

       这是个静态方法,接收一个Context参数,并自动使用当前的包名作用前缀来命名文件。


   一、将数据存储到SharedPreferences中

1.  调用SharedPreferences对象的edit()方法获取一个SharedPreferences.Editor对象

2.向SharedPreferences.Editor对象中添加数据,如果是布尔型就用putBoolean(),如果是字符串就用putString().

3.调用commit()方法提交数据,完成存储过程


代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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="com.example.sharepreferencestest.MainActivity" >


    <Button
        android:id="@+id/save_data"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Save data" />




public class MainActivity extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    Button saveData=(Button) findViewById(R.id.save_data);
   
    saveData.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences.Editor  editor=getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name", "Tom");
editor.putInt("age", 28);
editor.putBoolean("married", false);
editor.commit();
}
});
    

二、将数据从SharedPreferences中读取出来

    编辑用到editor.put方法读取就不用了。只需要用到SharedPreferences 中的get方法就行,相应的如果是布尔值就用getBoolean()方法,方法接收2个参数,第一个是键,第二个是默认值,即当找不到对应键的值时,作为默认值返回。


代码:




    <Button 
       android:id="@+id/restore_data"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Restore data" 
       android:layout_below="@+id/save_data"
       />




       restoreData.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
SharedPreferences pref=getSharedPreferences("data", MODE_PRIVATE);
//第二个参数表示如果按照第一个参数(键)找不到的话,就显示第二个参数作为默认值
String name=pref.getString("name","");
int age=pref.getInt("age",0);
boolean married=pref.getBoolean("married", false);
Log.d("Main", "name is"+name);
Log.d("Main","age is"+age);
Log.d("Main", "married is "+married);
}

});
    
    }


  Demo:实现记住密码功能





0 0
原创粉丝点击