Android数据存储--SharedPreferences--共享数据存储

Android数据存储--SharedPreferences

    SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
    SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。

使用SharedPreferences的步骤
    1、获取SharedPreferences对象
    2、调用edit()方法获取SharedPreferences.Editor
    3、通过SharedPreferences.Editor接口提供的put()方法对SharedPreferences进行更新
    4、调用SharedPreferences.Editor的commit()或apply()方法,将更新提交到SharedPreferences中

   apply ():  异步处理
   commit():  有返回值

布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_save"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="保存数据" />

    <Button
        android:id="@+id/btn_get"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="获取数据" />

</LinearLayout>
逻辑代码

package com.example.week3_day3_sharepreferences;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.View;
/**
 * 数据存储之共享数据存储--SharedPreferences
 * 主要用途:
 *			保存用户名和密码,手势密码的开关,游戏中是否开启音乐
 */
public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
	}

	public void onClick(View v) {
		// 得到id
		switch (v.getId()) {
		// 保存数据
		case R.id.btn_save:
			/* *
			 	 参数1:name:保存数据文件的名称
				 参数2:mode:数据的标记
				 MODE_PRIVATE:数据只能被本应用程序读和写
				 MODE_APPEND:新内容追加到原内容之后
				 MODE_WORLD_REDABLE:能被其他程序读,但不能被写
				 MODE_WORLD_WRITEABLE:能被其他程序读和写
			 */
			//将数据保存到名为save.xml的文件中,保存路径为file explorer-->data-->data-->自己的包名-->share pre-->save.xml-->导出

			//-----------第一种方式---------
			//		SharedPreferences preferences = getSharedPreferences("save",
			//		Context.MODE_PRIVATE);
			//------------第二种方式-----------
			SharedPreferences preferences=getPreferences(Context.MODE_PRIVATE);
			Editor editer = preferences.edit();// 获取编辑者对象
			editer.putBoolean("booleanType", true);// 存放布尔类型数据
			editer.putFloat("floatType", 1.0f);// 存放float类型数据
			editer.putInt("intType", 34);
			editer.putLong("longType", 100000);
			editer.putString("stringType", "你好");
			/**
			 * 数据的存放格式
			 * 	    <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
					<map>
					<float name="floatType" value="1.0" />
					<string name="stringType">你好</string>
					<int name="intType" value="34" />
					<boolean name="booleanType" value="true" />
					<long name="longType" value="100000" />
					</map>
			 */
			// 提交数据
			editer.commit();
			break;
		// 获取数据
		case R.id.btn_get:
			//-----------第一种方式---------可以获取其他类的数据
//			SharedPreferences preferences2 = getSharedPreferences("save",
//					Context.MODE_PRIVATE);
			//------------第二种方式-----------只能获取本类的数据
			//获取对象
			SharedPreferences preferences2=getPreferences(Context.MODE_PRIVATE);
			// 取出数据
			boolean b = preferences2.getBoolean("booleanType", false);
			int i = preferences2.getInt("intType", -1);
			//打印日志
			Log.i("SharedPreferences", b + "," + i);
			break;

		default:
			break;
		}
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值