SharedPreferences数据存储

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());


代码:

package com.learnsharedpreference;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.util.Log;
import android.view.Menu;

public class MainActivity extends Activity {

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

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

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值