Android SP工具类

public class SPUtils {

    /**
     * 保存在手机里面的文件名
     */
    private static final String FILE_NAME = "share_date";


    /**
     * 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
     * @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();
    }


    /**
     * 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
     * @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;
    }
}

下面就是调用

       //这里pass是一个输入框的值。
        String trim = pass.getText().toString().trim();
        SPUtils.setParam(BasesActivity.this,"trim",trim);
        String ces = SPUtils.getParam(BasesActivity.this, "trim", "").toString();

 

### Android SharedPreferences 工具类 示例代码 以下是基于提供的引用内容以及专业知识构建的一个完整的 `SharedPreferences` 工具类示例。此工具类可以简化开发者在 Android 应用程序中对 `SharedPreferences` 的操作。 #### Java 实现 ```java public class SharedPreferencesUtil { private static final String PREF_NAME = "AppPref"; // 默认的SharedPreferences名称 private static SharedPreferences sharedPreferences; private static SharedPreferences.Editor editor; public static void init(Context context) { if (sharedPreferences == null) { sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); editor = sharedPreferences.edit(); } } public static void put(String key, Object value) { if (value instanceof String) { editor.putString(key, (String) value).apply(); } else if (value instanceof Integer) { editor.putInt(key, (Integer) value).apply(); } else if (value instanceof Boolean) { editor.putBoolean(key, (Boolean) value).apply(); } else if (value instanceof Float) { editor.putFloat(key, (Float) value).apply(); } else if (value instanceof Long) { editor.putLong(key, (Long) value).apply(); } } @SuppressWarnings("unchecked") public static <T> T get(String key, T defaultValue) { if (defaultValue instanceof String) { return (T) sharedPreferences.getString(key, (String) defaultValue); } else if (defaultValue instanceof Integer) { return (T) Integer.valueOf(sharedPreferences.getInt(key, (Integer) defaultValue)); } else if (defaultValue instanceof Boolean) { return (T) Boolean.valueOf(sharedPreferences.getBoolean(key, (Boolean) defaultValue)); } else if (defaultValue instanceof Float) { return (T) Float.valueOf(sharedPreferences.getFloat(key, (Float) defaultValue)); } else if (defaultValue instanceof Long) { return (T) Long.valueOf(sharedPreferences.getLong(key, (Long) defaultValue)); } return null; } public static void removeKey(String key) { editor.remove(key).apply(); } public static void clear() { editor.clear().apply(); } } ``` 初始化该工具类时,需调用 `init()` 方法传入上下文对象[^3]。 --- #### Kotlin 实现 如果项目使用 Kotlin,则可以通过扩展函数进一步优化代码结构: ```kotlin object SharedPreferencesUtil { private const val PREF_NAME = "AppPref" private lateinit var sharedPreferences: SharedPreferences fun init(context: Context) { if (!::sharedPreferences.isInitialized) { sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) } } inline fun <reified T : Any> put(key: String, value: T) { with(sharedPreferences.edit()) { when (value) { is String -> putString(key, value as String?) is Int -> putInt(key, value as Int) is Boolean -> putBoolean(key, value as Boolean) is Float -> putFloat(key, value as Float) is Long -> putLong(key, value as Long) else -> throw IllegalArgumentException("Unsupported type.") }.apply() } } inline operator fun <reified T : Any> get(key: String, defaultValue: T): T { return with(sharedPreferences) { when (defaultValue) { is String -> getString(key, defaultValue as? String?) as T? is Int -> getInt(key, defaultValue as Int) as T is Boolean -> getBoolean(key, defaultValue as Boolean) as T is Float -> getFloat(key, defaultValue as Float) as T is Long -> getLong(key, defaultValue as Long) as T else -> throw IllegalArgumentException("Unsupported type.") } ?: defaultValue } as T } fun removeKey(key: String) { sharedPreferences.edit().remove(key).apply() } fun clear() { sharedPreferences.edit().clear().apply() } } ``` 初始化时同样需要调用 `init()` 方法传递上下文对象[^4]。 --- #### 使用示例 ##### Java 版本 ```java // 初始化 SharedPreferencesUtil.init(getApplicationContext()); // 存储数据 SharedPreferencesUtil.put("username", "Alice"); SharedPreferencesUtil.put("age", 28); // 获取数据 String username = (String) SharedPreferencesUtil.get("username", ""); int age = (Integer) SharedPreferencesUtil.get("age", 0); // 删除单个键值对 SharedPreferencesUtil.removeKey("username"); // 清除所有数据 SharedPreferencesUtil.clear(); ``` ##### Kotlin 版本 ```kotlin // 初始化 SharedPreferencesUtil.init(applicationContext) // 存储数据 SharedPreferencesUtil.put("username", "Bob") SharedPreferencesUtil.put("age", 30) // 获取数据 val username: String = SharedPreferencesUtil.get("username", "") val age: Int = SharedPreferencesUtil.get("age", 0) // 删除单个键值对 SharedPreferencesUtil.removeKey("username") // 清除所有数据 SharedPreferencesUtil.clear() ``` 上述工具类能够显著减少重复代码,并提高开发效率[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值