SharedPreferences数据存储

来源:互联网 发布:浙江移动网络运营岗位 编辑:程序博客网 时间:2024/06/05 14:13

Android数据存储有几种方式:

1、SharedPreferences是使用键值对保存数据,适用于基本数据类型:int,float,long,String,boolean类型;

2、SQLite数据库存储,是一款小巧,开源的数据库。

3、网络数据保存。

4、文件

5、contentProvider


SharedPrefernces详细说明:

SharedPrefernces preference= Context.getSharedPreferences("文件名称", "控制权限");

控制权限:

       Context.MODE_PRIVATE:表示该文件只能被自身应用调用,

       MODE_WORLD_READABLE: 表示该文件可以被其他应用程序读取

       MODE_WORLD_WRITEABLE:表示该文件可以被其他应用程序写入

读取文件:

        preference.getString(key, value);//读取String类型

        preference.getInt(key, value);//读取Int类型
        preference.getBoolean(key, value);//读取Boolean类型
        preference.getFloat(key, value);//读取Float类型
        preference.getLong(key, value);//读取Long类型

        preference.getAll(key, value);//读取文件中所有值,返回Map<String ,?>

写入文件:

        SharedPreferences.Editor editor = preferences.edit();//取得编辑

        editor.putString(key, value);//提交数据
        editor.putLong(key, value);
        editor.putInt(key, value);
editor.putFloat(key, value);

editor.putBoolean(key, value);

        editor.remove(key);//删除某个值

editor.commit();//执行后,文件不存在则创建文件并保存,文件存在则将数据保存到文件中。

事件监听:

//注册事件

       preference.registerOnSaredPreferenceChangeListener(newonSharedPreferenceChangeListener());

       preference.commit();//不要忘记commit,否则不会触发监听器

//解锁注册,不会再响应改变

       preference.registerOnSaredPreferenceChangeListener(newonSharedPreferenceChangeListener());


代码:

[java] view plain copy
 print?在CODE上查看代码片派生到我的代码片
  1. package com.learnsharedpreference;  
  2.   
  3. import android.os.Bundle;  
  4. import android.app.Activity;  
  5. import android.content.SharedPreferences;  
  6. import android.content.SharedPreferences.OnSharedPreferenceChangeListener;  
  7. import android.util.Log;  
  8. import android.view.Menu;  
  9.   
  10. public class MainActivity extends Activity {  
  11.   
  12.     private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() {  
  13.           
  14.         @Override  
  15.         public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,  
  16.                 String key) {  
  17.             // TODO Auto-generated method stub  
  18.             Log.e("ChangeListener""key: " + key + " = " + sharedPreferences.getString(key, "value"));  
  19.               
  20.         }  
  21.     };  
  22.       
  23.     @Override  
  24.     protected void onCreate(Bundle savedInstanceState) {  
  25.         super.onCreate(savedInstanceState);  
  26.         setContentView(R.layout.activity_main);  
  27.           
  28.         // 如果mytest.xml文件不存在,则会在editor.commit()时创建并保存数据。如果mytest.xml存在,  
  29.         // 则会在editor.commit()时保存数据。  
  30.         SharedPreferences preference = this.getSharedPreferences("mytest"this.MODE_PRIVATE);  
  31.         SharedPreferences.Editor editor = preference.edit();  
  32.         editor.putBoolean("boolean"true);  
  33.         editor.putString("string""value");  
  34.         editor.putFloat("float"0.0f);  
  35.         editor.putInt("int"10);  
  36.         editor.putLong("long"25648523);  
  37.         editor.commit();    //不能忘记,否则不会创建文件和保存数据  
  38.   
  39.         Log.e("ReadSharedRefernces""string:" + preference.getString("string"""));  
  40.         Log.e("ReadSharedRefernces""int:" + preference.getInt("int"1));  
  41.         Log.e("ReadSharedRefernces""boolean:" + preference.getBoolean("boolean"false));  
  42.         Log.e("ReadSharedRefernces""flaot:" + preference.getFloat("float"0.1f));  
  43.         Log.e("ReadSharedRefernces""long:" + preference.getLong("long"23));  
  44.           
  45.         preference.registerOnSharedPreferenceChangeListener(listener);  //注册事件  
  46.         editor = preference.edit();  
  47.         editor.putString("testListener""success");  
  48.         editor.commit();//不要忘记commit(),否则不会触发监听器。    
  49.           
  50.         preference.unregisterOnSharedPreferenceChangeListener(listener);    //解除注册,不会再相应改变    
  51.         editor = preference.edit();  
  52.         editor.putString("name""SharedPreference");  
  53.         editor.commit();//已经解锁注册,所以更改数据时不会触发监听器  
  54.           
  55.           
  56.     }  
  57.   
  58. }  

0 0
原创粉丝点击