SharedPreferences的一个工具类适合的数据类型包括String、Integer、Boolean、Float、Long

package com.jianong.xmtt.util;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * SharedPreferences的一个工具类,调用setParam就能保存String, Integer, Boolean, Float, Long类型的参数
 * 同样调用getParam就能获取到保存在手机里面的数据
 * Created by hgl on 2016/6/24.
 */
public class SharedPreferencesutils {

    private static final String FILE_NAME = "share_date";

    /**
     * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
     *
       SharedPreferencesUtils.setParam(this, "String", "xiaanming");
      SharedPreferencesUtils.setParam(this, "int", 10);
      SharedPreferencesUtils.setParam(this, "boolean", true);
      SharedPreferencesUtils.setParam(this, "long", 100L);
      SharedPreferencesUtils.setParam(this, "float", 1.1f);
     * @param context
     * @param key
     * @param object
     */
    public static void setParam(Context context, String key, Object object) {

        String type = object.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = sp.edit();

        if ("String".equals(type)) {
            editor.putString(key, (String) object);
        } else if ("Integer".equals(type)) {
            editor.putInt(key, (Integer) object);
        } else if ("Boolean".equals(type)) {
            editor.putBoolean(key, (Boolean) object);
        } else if ("Float".equals(type)) {
            editor.putFloat(key, (Float) object);
        } else if ("Long".equals(type)) {
            editor.putLong(key, (Long) object);
        }

        editor.commit();
    }

    /**
     * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
     *    SharedPreferencesUtils.getParam(TimerActivity.this, "String", "");      SharedPreferencesUtils.getParam(TimerActivity.this, "int", 0);
          SharedPreferencesUtils.getParam(TimerActivity.this, "boolean", false);
          SharedPreferencesUtils.getParam(TimerActivity.this, "long", 0L);
          SharedPreferencesUtils.getParam(TimerActivity.this, "float", 0.0f);
     * @param context
     * @param key
     * @param defaultObject
     * @return
     */
    public static Object getParam(Context context, String key, Object defaultObject) {
        String type = defaultObject.getClass().getSimpleName();
        SharedPreferences sp = context.getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);

        if ("String".equals(type)) {
            return sp.getString(key, (String) defaultObject);
        } else if ("Integer".equals(type)) {
            return sp.getInt(key, (Integer) defaultObject);
        } else if ("Boolean".equals(type)) {
            return sp.getBoolean(key, (Boolean) defaultObject);
        } else if ("Float".equals(type)) {
            return sp.getFloat(key, (Float) defaultObject);
        } else if ("Long".equals(type)) {
            return sp.getLong(key, (Long) defaultObject);
        }
        return null;
    }
}
时间: 2024-08-06 10:01:34

SharedPreferences的一个工具类适合的数据类型包括String、Integer、Boolean、Float、Long的相关文章

Android之SharedPreferences两个工具类

相信Android的这个最简单的存储方式大家都很熟悉了,但是有一个小小技巧,也许你没有用过,今天就跟大家分享一下,我们可以把SharedPreferences封装在一个工具类中,当我们需要写数据和读数据的时候,就可以直接通过工具类的set和get方法来完成,类似JavaBean,这样使用起来就比较方便,快捷(建议项目中使用次数比较多使用).好了,直接看看这段简单的代码吧: public class SharePreferenceUtil { private SharedPreferences s

js五种基本数据类型:string, number, boolean, null, undefined

/** * 五种基本数据类型:string, number, boolean, null, undefined */ // undefined // 声明变量foo,未声明变量bar var foo; console.log(`typeof foo: ${foo}`, `typeof bar: ${bar}`); // typeof foo: undefined typeof bar: undefined if (foo === undefined) { // foo全等于undefined c

JDBC的增删改写成一个方法,调用一个工具类

package com.hx.jdbc.connection; import java.sql.Connection; import java.sql.Statement; import com.mysql.jdbc.UpdatableResultSet; import junit.framework.TestCase; public class JDBCText extends TestCase { /** * 创建一个insert,update,delete通用的方法 * @param sq

对象序列化和反序列化应该写为一个工具类

对象序列化和反序列化工具类 package com.umu.util; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.Object

封装一个工具类实现JDBC与MySQL数据库的连接

package com.cn.jdbc; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement; public class JDBC_Connection { //加载驱动,链接数据库 public stati

获取当天的开始时间、结束时间等等的一个工具类

import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List; /** * Date工具类 */public class Dateutil { /**     * 当天的开始时间     * @return     */    public static long startOfTodDay() {        Calendar calendar = Calend

一个工具类,生成一些废代码,用于混淆

发布多个微信小游戏,因为用的游戏框架是同一个,被微信判定代码雷同不给过审核. 于是加了点废代码.不知道能不能过哦.如果是人工审核,那基本没戏... 工具类 /** * 生成一些废代码,用于混淆 * @author chenkai 2018/10/7 */ class ConfuseTool { public constructor() { } public static createClass(num:number){ let str = ""; for(let i=0;i<nu

Swift:简单封装一个工具类模板

创建模板类(封装一个类)新建一个名字叫做 Product 的类 Product.swift File 的内容 class Product { var name: String var description: String var price: Double var stock: Int init(name: String, description: String, price: Double, stock: Int) { self.name = name self.description =

爬取当当网的图书信息之封装一个工具类

把这个类名取为Tool 封装一个下载网页的方法GetHtml public static string GetHtml(string url) { try { WebClient wb = new WebClient(); return wb.DownloadString(url); } catch { return ""; } } 传入的是这个网页的URL,这个方法能帮我们把网页下载下来封装一个匹配图书类URL的的方法 public static ArrayList GetList(