004_04SharedPreferences

SharedPreferences的简介

  SharedPreferences是一种轻型的Android数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。比较经典的使用方式例如用户输入框对过往登录账户的存储。

实现SharedPreferences存储的步骤如下:

  1、根据Context获取SharedPreferences对象

  2、利用edit()方法获取Editor对象。

  3、通过Editor对象存储key-value键值对数据。

  4、通过commit()方法提交数据

获取SharedPreferences的两种方式:
  1、调用Context对象的getSharedPreferences()方法
  2、调用Activity对象的getPreferences()方法
  
两种方式的区别:
  调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
  调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

SharedPreferences的四种操作模式:

  Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

  Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

  Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.

 

 1 package com.example.sharedpref;
 2 
 3 import android.app.Activity;
 4 import android.content.SharedPreferences;
 5 import android.content.SharedPreferences.Editor;
 6 import android.os.Bundle;
 7 import android.view.Menu;
 8 import android.view.MenuItem;
 9 import android.widget.Toast;
10 
11 public class MainActivity extends Activity {
12 
13     @Override
14     protected void onCreate(Bundle savedInstanceState) {
15         super.onCreate(savedInstanceState);
16         setContentView(R.layout.activity_main);
17         
18         //savetoSharedPreferences();
19         
20         readfromSharedPreferences();
21         
22     }
23 
24     private void readfromSharedPreferences() {
25         // TODO Auto-generated method stub
26         
27         //1)打开名为information的配置文件
28         SharedPreferences sharedPreferences = getSharedPreferences("infomation", 0);
29         //2)获取数据
30         boolean autostart= sharedPreferences.getBoolean("autostart", true) ;
31         float autoclose =  sharedPreferences.getFloat("autoclose", 0);
32         String nickname = sharedPreferences.getString("nickname", "");
33         
34         Toast.makeText(this, nickname+","+autostart+","+autoclose, 1).show();
35     }
36 
37     private void savetoSharedPreferences() {
38         //1.获取sharedPreferences
39         SharedPreferences sp = getSharedPreferences("infomation", MODE_PRIVATE);
40          //2.获取editor对象
41         Editor editor = sp.edit();
42         //3.使用editor进行写你需要的数据到sp里面
43         editor.putBoolean("autostart", false);
44         editor.putFloat("autoclose", 1000.0f);
45         editor.putString("nickname", "hellokitty");
46         
47         //4.将我们写入的数据保存到文件中。
48         editor.commit();
49     }
50 }
物随心转,境由心造,一切烦恼皆由心生。
原文地址:https://www.cnblogs.com/woodrow2015/p/4515748.html