SharedPreferences数据存储

时间:2025-04-08 18:57:30

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:表示该文件可以被其他应用程序写入

读取文件:

        (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 ,?>

写入文件:

        editor = ();//取得编辑

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

editor.putBoolean(key, value);

        (key);//删除某个值

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

事件监听:

//注册事件

       (newonSharedPreferenceChangeListener());

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

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

       (newonSharedPreferenceChangeListener());


代码:

package ;

import ;
import ;
import ;
import ;
import ;
import ;

public class MainActivity extends Activity {

	private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() {
		
		@Override
		public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
				String key) {
			// TODO Auto-generated method stub
			("ChangeListener", "key: " + key + " = " + (key, "value"));
			
		}
	};
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		(savedInstanceState);
		setContentView(.activity_main);
		
		// 如果文件不存在,则会在()时创建并保存数据。如果存在,
		// 则会在()时保存数据。
		SharedPreferences preference = ("mytest", this.MODE_PRIVATE);
		 editor = ();
		("boolean", true);
		("string", "value");
		("float", 0.0f);
		("int", 10);
		("long", 25648523);
		();	//不能忘记,否则不会创建文件和保存数据

		("ReadSharedRefernces", "string:" + ("string", ""));
		("ReadSharedRefernces", "int:" + ("int", 1));
		("ReadSharedRefernces", "boolean:" + ("boolean", false));
		("ReadSharedRefernces", "flaot:" + ("float", 0.1f));
		("ReadSharedRefernces", "long:" + ("long", 23));
		
		(listener);	//注册事件
		editor = ();
		("testListener", "success");
		();//不要忘记commit(),否则不会触发监听器。  
		
		(listener);	//解除注册,不会再相应改变  
		editor = ();
		("name", "SharedPreference");
		();//已经解锁注册,所以更改数据时不会触发监听器
		
		
	}

}