zoukankan      html  css  js  c++  java
  • 【慢慢学Android】:2.SharedPreferences对数据的存储

       SharedPreferences简介:                                                                         

          SharedPreferences是Android平台上一个轻量级的存储类,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息,比如窗口状态,一些小型自定义数据等。其存储位置在/data/data/<包名>/shared_prefs目录下,可以通过DDMS--FileExplorer下查看(选中文件点击DDMS右上角的导出文件)。

       数据的存储:                                                                                             

       1.构造函数:   

    如示例,一般常用的构造函数为2个参数

    第一个为sp的名称,第二个一般为权限比如Activity.MODE_PRIVATE, MODE_APPEND, MODE_WORLD_READABLE, MODE_WORLD_WRITEABLE

    public class Calc extends Activity {
        public static final String PREFS_NAME = "MyPrefsFile";
    
        @Override
        protected void onCreate(Bundle state){
           super.onCreate(state);
           . . .
    
           // Restore preferences
           SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
           boolean silent = settings.getBoolean("silentMode", false);
           setSilent(silent);
        }
    

      

       2.数据的存储以及修改:   

    使用SharedPreferences.Editor类来构造一个编辑器进行存储数据

    add.setOnClickListener(new OnClickListener(){
    			@Override
    			public void onClick(View v) {
    				// TODO Auto-generated method stub
    				String str_name = (String) name.getText();
    				String str_path = (String) text.getText();
    				SharedPreferences Addresses = getSharedPreferences(PREFS_NAME,Activity.M );
    				SharedPreferences.Editor editor = Addresses.edit();//通过SharedPreferences.edit()来对Editor进行初始化
                                    editor.putString(str_name,str_path);//添加数据 
    editor.commit(); //数据添加后必须提交才会修改xml文件
    Toast.makeText(getApplicationContext(), "Successed", Toast.LENGTH_LONG).show();
    }
    });

    删除数据

    public boolean onItemLongClick(AdapterView<?> parent, View view,
    					int position, long id) {
    				SharedPreferences Addresses = getSharedPreferences(PREFS_NAME,
    						Activity.MODE_PRIVATE);
    				SharedPreferences.Editor editor = Addresses.edit();    //通过SharedPreferences.edit()来对Editor进行初始化
    				editor.remove((String) listview.getSelectedItem());    //删除相应的数据
    				                           editor.commit();   //同样需要提交
                                    }
    
    		});
    

       3.一些常用的方法:   

    void apply()
    Commit your preferences changes back from this Editor to the SharedPreferences object it is editing.
     SharedPreferences.Editor clear()
    Mark in the editor to remove all values from the preferences.
    boolean commit()
    Commit your preferences changes back from this Editor to the SharedPreferences object it is editing.
     SharedPreferences.Editorput Boolean(String key, boolean value)
    Set a boolean value in the preferences editor, to be written back once commit() or apply() are called.
     SharedPreferences.Editor putInt(String key, int value)
    Set an int value in the preferences editor, to be written back once commit() or apply() are called.
     SharedPreferences.Editor putString(String key, String value)
    Set a String value in the preferences editor, to be written back once commit() or apply() are called.
     SharedPreferences.Editor putStringSet(String key, Set<String> values)
    Set a set of String values in the preferences editor, to be written back once commit() is called.
     SharedPreferences.Editor remove(String key)
    Mark in the editor that a preference value should be removed, which will be done in the actual preferences once commit() is called.

       数据的读取:                                                                                            

    SharedPreferences.Editor edit()
    Create a new Editor for these preferences, through which you can make modifications to the data in the preferences and atomically commit those changes back to the SharedPreferences object.
    Map<String, ?> getAll()
    Retrieve all values from the preferences.
    boolean getBoolean(String key, boolean defValue)
    Retrieve a boolean value from the preferences.
     String getString(String key, String defValue)
    Retrieve a String value from the preferences.
     Set<String> getStringSet(String key, Set<String> defValues)
    Retrieve a set of String values from the preferences.
    void registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)
    Registers a callback to be invoked when a change happens to a preference.
    void unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListener listener)
    Unregisters a previous callback.
     

       使用getAll()读取所有数据存储在一个HashMap中:

                    listview = (ListView) findViewById(R.id.lv);
    		SharedPreferences Addresses = getSharedPreferences(PREFS_NAME, 0);
    		listItems = (HashMap<String, Object>) Addresses.getAll();
    

      还是挺好用的哈~~

  • 相关阅读:
    ubuntu系统安装Loadrunner压力机和负载端(linux agent)
    LoadRunner生成二进制参数的方法
    [02]树莓派无线USB网卡,Mercury WIFI配置
    6.4节“末端端接器的交流偏置”
    MIPS32的DIV和DIVU实现(除法指令)
    5.3节“开槽地平面的串扰”
    给自己挖坑
    电容降额
    MIPS32的ADDI和ADDIU的实现要点(加法指令)
    使用加法器实现减法
  • 原文地址:https://www.cnblogs.com/VortexPiggy/p/2509468.html
Copyright © 2011-2022 走看看