Android中的5中数据存储方式之SharedPreferences存储
2016-03-23 20:53
375 查看
Android中5中数据存储:SharedPreference存储、文件存储、SQLite数据库存储、ContentProvider存储和网络存储。
一、SharedPreferences存储
在android中想要实现配置信息的保存则需要使用该SharedPreferences完成。
该存储器保存信息是按照“Key=Value”的形式进行保存的。它只能保存一些基本的数据类型,如字符串、整型、布尔型等。
SharedPreferences存储特点:
1.是一种轻型的数据存储方式(android自带的)
2.本质是基于XML文件存储key-value键值对数据
3.通常用来存储一些简单的配置信息(很少,所以没有必要采用数据库),(保存密码,用户名等)
如何使用,它只可以取数据而不可以存储和修改,存储修改是通过Editor对象实现。
实现SharedPreferences存储的步骤如下:
1.获得SharedPreferences对象
2.获得SharedPreferences.Editor对象
3.通过Editor接口的putXxx方法保存key-value对其中Xxx表示不同的数据类型
4.通过Editor接口的commit方法保存key-value对
SharedPreferences接口的常用方法
我们在进行数据的写入时,首先要通过SharedPreferences类所提供的edit()方法使其处于可编辑的状态,方法返回的对象类型是android.content.SharedPreferences.Editor接口实例,该接口的常用方法如下:
由于SharedPreferences和SharedPreferences.Editor两个都是接口,要想取得SharedPreferences接口的实例化对象,还需要Activity类中的几个常量和方法的支持。如下所示:
Activity类对SharedPreferences接口的支持
1.public static final int MODE_PRIVATE 常量 创建的文件只能被一个应用程序调用,或者被具有相同的ID的应用程序访问
2.public static final int MODE_WORLD_READABLE 常量 允许其他应用程序读取文件
3.public static final int MODE_WORLD_WRITEABLE 常量 允许其他应用程序修改文件
4.public SharedPreferences getSharedPreferences(String name,int mode) 普通类型 指定保存操作的文件名称,同 时指定操作的模式,设置的内容可以是0、MODE_PRIVATE
、MODE_WORLD_READABLE 、MODE_WORLD_WRITEABLE
下面来练习一个例子:向文件中保存两种数据:String和int 型。
让我们来再写一个例子,在这个里面我们获取信息
布局文件:
逻辑代码:
效果如下:
一、SharedPreferences存储
在android中想要实现配置信息的保存则需要使用该SharedPreferences完成。
该存储器保存信息是按照“Key=Value”的形式进行保存的。它只能保存一些基本的数据类型,如字符串、整型、布尔型等。
SharedPreferences存储特点:
1.是一种轻型的数据存储方式(android自带的)
2.本质是基于XML文件存储key-value键值对数据
3.通常用来存储一些简单的配置信息(很少,所以没有必要采用数据库),(保存密码,用户名等)
如何使用,它只可以取数据而不可以存储和修改,存储修改是通过Editor对象实现。
实现SharedPreferences存储的步骤如下:
1.获得SharedPreferences对象
2.获得SharedPreferences.Editor对象
3.通过Editor接口的putXxx方法保存key-value对其中Xxx表示不同的数据类型
4.通过Editor接口的commit方法保存key-value对
SharedPreferences接口的常用方法
//1.public abstract SharedPreferences.Editor edit() 普通类型 使其处于可编辑的状态 //2.public abstract boolean contains(String key) 普通类型 判断某一个key是否存在 //3.public abstract Map<String,?> getAll() 普通类型 取出全部数据 //4.public abstract boolean getBoolean(String key,boolean defValue) 普通类型 取出boolean型数据,并指定默认值 //5.public abstract float getFloat(String key,float defValue) 普通类型 取出float型数据,并指定默认值 //6.public abstract int getInt(String key,int defValue) 普通类型 取出int型数据,并指定默认值 //7.public abstract long getIong(String key,long defValue) 普通类型 取出long型数据,并指定默认值 //8.public abstract String getString(String key,String defValue) 普通类型 取出String型数据,并指定默认值
我们在进行数据的写入时,首先要通过SharedPreferences类所提供的edit()方法使其处于可编辑的状态,方法返回的对象类型是android.content.SharedPreferences.Editor接口实例,该接口的常用方法如下:
//1.public abstract SharedPreferences.Editor clear() 普通类型 清除所有的数据 //2.public abstract boolean commit() 普通类型 提交更新的数据 //3.public abstract SharedPreferences.Editor putBoolean(String key,boolean value) 普通类型 保存一个boolean型数据 //4.public abstract SharedPreferences.Editor putFloat(String key,float value) 普通类型 保存一个float型数据 //5.public abstract SharedPreferences.Editor putInt(String key,Int value) 普通类型 保存一个int型数据 //6.public abstract SharedPreferences.Editor putLong(String key,long value) 普通类型 保存一个long型数据 //7.public abstract SharedPreferences.Editor putString(String key,String value) 普通类型 保存一个String型数据 //8.public abstract SharedPreferences.Editor remove(String key) 普通类型 删除指定key的数据
由于SharedPreferences和SharedPreferences.Editor两个都是接口,要想取得SharedPreferences接口的实例化对象,还需要Activity类中的几个常量和方法的支持。如下所示:
Activity类对SharedPreferences接口的支持
1.public static final int MODE_PRIVATE 常量 创建的文件只能被一个应用程序调用,或者被具有相同的ID的应用程序访问
2.public static final int MODE_WORLD_READABLE 常量 允许其他应用程序读取文件
3.public static final int MODE_WORLD_WRITEABLE 常量 允许其他应用程序修改文件
4.public SharedPreferences getSharedPreferences(String name,int mode) 普通类型 指定保存操作的文件名称,同 时指定操作的模式,设置的内容可以是0、MODE_PRIVATE
、MODE_WORLD_READABLE 、MODE_WORLD_WRITEABLE
下面来练习一个例子:向文件中保存两种数据:String和int 型。
package com.administrator.sharedpreferencestest; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; /** * Created by Administrator on 2016/3/23. */ public class SavedDataActivity extends Activity{ private static final String FILENAME="HelloWorld"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //指定操作的文件名称和指定操作的模式 SharedPreferences share=super.getSharedPreferences(FILENAME, Activity.MODE_PRIVATE); SharedPreferences.Editor editor=share.edit();//编辑文件 editor.putString("author","qinshihuang"); editor.putInt("age",2275); editor.commit(); } }利用getSharedPreferences()方法取得SharedPreferences对象,利用此对象取得SharedPreferences.Editor接口的对象进行数据的设置,最后commit提交。
让我们来再写一个例子,在这个里面我们获取信息
布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/tv1" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/tv2" android:layout_width="match_parent" android:layout_height="wrap_content"/> </LinearLayout>
逻辑代码:
package com.administrator.sharedpreferencestest; import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.widget.TextView; /** * Created by Administrator on 2016/3/23. */ public class LoadDataActivity extends Activity { private static final String FILENAME="EMPEROR"; private TextView tv1; private TextView tv2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_loaddata); tv1= (TextView) findViewById(R.id.tv1); tv2= (TextView) findViewById(R.id.tv2); SharedPreferences share=super.getSharedPreferences(FILENAME,Activity.MODE_PRIVATE); tv1.setText("皇帝:"+share.getString("emperor","秦始皇")); tv2.setText("年龄:"+share.getInt("age",2275)); } }
效果如下:
相关文章推荐
- Android手势源码浅析-----手势绘制(GestureOverlayView)
- Android Studio 设置内存大小及原理
- android 开发技巧(10,11)
- 常用的监听事件(android)
- Android Stability [转]
- [Android Studio] Android Studio常用快捷键
- android无效代码,资源文件,原生文件对apk大小的影响
- android 开发技巧(12)--更改 Toast 显示位置的技巧
- Android Studio实现侧滑菜单
- Android 通过ADB Wireless无线调试应用
- 【Android】通用系列 —— AbsListView适配器
- 【Android】4、分析HelloWorld项目如何运行
- Android中用户手势检测详述(OnCliskListener、OnTouchListener和GestureDetecter)
- Android相关的代码片段
- Android 高清加载巨图方案 拒绝压缩图片
- Android中的数据存储方式
- Android FragmentTransactionExtended:使Fragment以多种样式动画切换
- android中选择控件与选择界面自然过度效果的实现--一种新的交互设计
- Android FragmentActivity onActivityResult冲突问题
- android CheckBox控件的定义及事件监听