SharedPreferences工具类
来源:互联网 发布:域名费用 编辑:程序博客网 时间:2024/05/29 04:36
SharedPreferences是Android中一种存储方式,主要用来存储记录简单的小数据,比如开关状态,按钮状态等一些设置信息,简单的用户信息等等,在App中也比较常用,这里写了一个工具类方便以后项目的使用.
新建一个工程SharedPreferences:
在activity_main.xml文件中添加两个按钮,一个存储数据,一个取出数据:
<RelativeLayout 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" > <Button android:id="@+id/btn_save" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:layout_marginTop="133dp" android:text="存储数据" /> <Button android:id="@+id/btn_get" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/btn_save" android:layout_alignBottom="@+id/btn_save" android:layout_marginLeft="40dp" android:layout_toRightOf="@+id/btn_save" android:text="取出数据" /></RelativeLayout>新建一个SharedPreferencesUtil.java:
代码比较简单,一个存储数据的方法,一个取数据的方法,可以存取String,Boolean,Integer,Float,Long的类型的数据
/** * * @author Grrsun SharedPreferences工具类 用来方便保存和读取数据 * */public class SharedPreferencesUtil {// 保存的数据的文件名private static final String FILE_NAME = "share_data";/** * 保存数据 */public static void savaData(Context context, String key, Object value) {// 获取数据类型String type = value.getClass().getSimpleName();// 参数1 文件保存路径 参数2 文件类型SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);SharedPreferences.Editor editor = sp.edit();if (type.equals("String")) {editor.putString(key, (String) value);}if (type.equals("Integer")) {editor.putInt(key, (Integer) value);}if (type.equals("Boolean")) {editor.putBoolean(key, (Boolean) value);}if (type.equals("Float")) {editor.putFloat(key, (Float) value);}if (type.equals("Long")) {editor.putLong(key, (Long) value);}editor.commit();}/** * 读取数据 */public static Object getData(Context context, String key, Object defaultValue) {String type = defaultValue.getClass().getSimpleName();SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);if (type.equals("String")) {return sp.getString(key, (String) defaultValue);}if (type.equals("Integer")) {return sp.getInt(key, (Integer) defaultValue);}if (type.equals("Boolean")) {return sp.getBoolean(key, (Boolean) defaultValue);}if (type.equals("Float")) {return sp.getFloat(key, (Float) defaultValue);}if (type.equals("Long")) {return sp.getLong(key, (Long) defaultValue);}return null;}}在MainActivity.java中通过两个按钮存取数据:
代码中用了第三方注解工具ButterKnife,在我的另一篇博文 Android依赖注入类库 Butter Knife的使用中有ButterKnife的使用配置方法
public class MainActivity extends Activity {private SharedPreferencesUtil sputil;@Overrideprotected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ButterKnife.inject(this);sputil = new SharedPreferencesUtil();}@OnClick({ R.id.btn_save, R.id.btn_get })public void operate(View v) {switch (v.getId()) {case R.id.btn_save:save();break;case R.id.btn_get:get();break;default:break;}}/** * SharedPreferences保存数据 */@SuppressWarnings("static-access")private void save() {sputil.savaData(this, "name", "良辰");sputil.savaData(this, "age", 23);sputil.savaData(this, "isMarry", false);sputil.savaData(this, "height", 173.2f);sputil.savaData(this, "weight", 62L);}/** * SharedPreferences获取数据 */@SuppressWarnings("static-access")private void get() {String name = (String) sputil.getData(this, "name", "");int age = (Integer) sputil.getData(this, "age", 0);boolean isMarry = (Boolean) sputil.getData(this, "isMarry", true);float height = (Float) sputil.getData(this, "height", 0.0f);long weight = (Long) sputil.getData(this, "weight", 0L);System.out.println("--" + name + ":" + age + ":" + isMarry + ":" + height + ":" + weight);}}
别忘了在AndroidManifest.xml中加入读取数据的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
完工后,运行程序:
点击存储数据,然后我们打开Eclipse的DDMS,点击根目录的data->data:
在第二个data文件夹下找到你的程序包名文件夹,继续点开,找到生成的share_data.xml文件,点击DDMS菜单栏右上角的导出按钮导出到计算机你指定的位置:
打开导出的xml文件,我们可以看到已经存储到本地的数据:
这说明我们的存储数据的方法是没问题的,接下来我们验证获取数据的方法,点击取出数据按钮,我们查看一下Eclipse打印的的log信息,可以看到打印出了以下数据:
这说明我们的取数据的方法也是没问题的.
这样既当复习了知识,同时以后在其他项目中也可以直接拿来用了.
0 0
- SharedPreferences工具类
- SharedPreferences 工具类
- android SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- android SharedPreferences工具类
- Android SharedPreferences工具类
- SharedPreferences工具类封装
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences工具类
- SharedPreferences 超强工具类
- SharedPreferences 工具类
- squid代理常见错误
- 12 个非常实用的 jQuery 代码片段
- c++primer第九章习题(5)
- WebService框架JWS、Axis2、XFire、CXF的区别
- 位域妙用
- SharedPreferences工具类
- android之AsyncTask
- 统计并保存叶子节点(二叉树)
- elasticsearch+logstash+kibana安装配置
- linux之cp/scp命令+scp命令详解
- C#数组详细解释
- 云巴-JavaScript API测试与实例
- Java与R语言的配置,调用
- Change the user name in win