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

Android SharedPreferences

2013-05-18 12:48 295 查看
SharedPreferences用来在本地保存用户习惯参数,例如,QQ的登陆框和密码,当我们下次启动时他会将上次登录的信息自动填入输入框中。

在Android中,其实它是通过创建一个xml文件存储的。下面讲解如何用SharedPreferences来保存这些参数:

1.import android.content.Context

import android.content.SharedPreferences;

import android.content.SharedPreferences.Editor;

SharedPreferences对象可以通过Context.getSharedPreferences()方法来获取,这个方法接受两个参数,一个是创建SharedPreferences的那个名字,也就是用于指定用于存放参数的xml文件名称。这个参数不能指定xml后缀。第二个参数是对文件的操作模式,一般用户的参数模式是不需要其他程序访问,所以指定为Context.MODE_PRIVATE。

然后需要用到编辑器editor,通过编辑器对象存放数据。

调用editor的put(arg0 , arg1); //arg0为参数名称,arg1为参数值

不同的参数类型需要调用不同的方法: editor.putString() 、 editor.putInt()

此时这些参数还存在内存中,没有真正保存到文件中。此时需要调用editor.commit()方法将数据存放至文件。

至此,SharedPreferences数据存储工作已经完毕,下面来介绍一下如何在程序中读取这些存放到xml文件中的数据:

这里有两种方法:

1.自定义getPreferences方法返回Map类型的参数:

1 /**
2      * 获取SharedPreferences值
3      */
4     public Map<String , String> getshared(){
5         SharedPreferences preferences = context.getSharedPreferences("shared", Context.MODE_PRIVATE);
6         Map<String , String> reshared = new HashMap<String , String>();
7
8         reshared.put("name", preferences.getString("name", ""));
      //第二个参数为:如果xml文件中没有设置过此信息,则读取第二个参数为默认值
9
10         reshared.put("age", String.valueOf(preferences.getInt("age", 0)));
11
12         return reshared;
13     }


这种方法是手动获取xml文件中数据的值并返回

2. 通过Activity.getPreferences()方法获取Preferences对象:

SharedPreferences settings = getPreferences(Activity.MODE_PRIVATE);

name = settings.getString("name" , "fanchangfa");

//这种方法系统会根据上次用户定义的xml文件自动从中提取参数值。

下面介绍如何向sharedPreferences中写入数据,即将我们的配置信息放入xml文件中:

  

1 /**
2      * 设置SharedPreferences值
3      */
4     public void setshared(String name , int age){
5         //不能指定文件扩展名,默认使用xml
6         SharedPreferences preferences = context.getSharedPreferences("shared", Context.MODE_PRIVATE);
      //系统会创建默认shared.xml文件

7         Editor editor = preferences.edit();        //将数据保存到Editor集合中
8
9         editor.putString("name", name);
10         editor.putInt("age", age);
11
12         editor.commit();            //提交数据——将数据保存到xml文件中
13     }


那么介绍了如何存取xml配置文件,下面我们将演示如何通过具体的方法读取文件:

1 preferences = new sharedexample(this.getApplicationContext());
2
3         show_name = (EditText) this.findViewById(R.id.txt_name);
4         show_age = (EditText) this.findViewById(R.id.txt_age);
5
6         btn_save = (Button) this.findViewById(R.id.btn_save);
7
8         /*
9          * 获取SharedPreferences中的值并设为默认文本框显示值
10          */
11
12         Map<String , String> def_value = preferences.getshared();  //上面我们自定义的获取配置信息的函数
13
14         show_name.setText(def_value.get("name"));
15
16         show_age.setText(def_value.get("age"));


保存:

1  /**
2      * 在布局文件中设置点击按钮执行save()方法。
3      * @param v
4      */
5     public void save(View v){
6         String name = show_name.getText().toString();
7         String age = show_age.getText().toString();
8         preferences.setshared(name , Integer.valueOf(age));
9         Toast.makeText(this, "保存成功", 1).show();
10     }


自此,就ok了,可以运行看一下效果:

  

  


  


下次打开此程序会默认显示我们上次配置的信息。

掌握sharedpreferences对Android项目的开发也很有用。

学习阶段,如有异议的地方,期待交流..
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: