LiteMemory-摒棄醜陋的配置代碼

LiteMemory

LiteMemory是一個用於簡化SharePreference的框架,主要用於簡化對象在本地的存儲。java

用途:在本地存儲用戶配置時通常須要如下代碼,以怪獸課表存儲的本地配置爲例android

項目地址:github.com/zfman/LiteM…git

以前獲取配置的方式是這樣的:github

int hide = ShareTools.getInt(this, "hidenotcur", 0);
	if (hide == 0) {
		hideNotCurSwitch.setChecked(false);
	} else {
		hideNotCurSwitch.setChecked(true);
	}
複製代碼

使用LiteMemory能夠這樣:json

ConfigExample example=LiteMemory.get().from(ConfigExample.class);
	if (!example.isHideNotCur()) {
		hideNotCurSwitch.setChecked(false);
	} else {
		hideNotCurSwitch.setChecked(true);
	}
複製代碼

簡單使用

引入依賴bash

To get a Git project into your build:app

Step 1. Add the JitPack repository to your build file框架

Add it in your root build.gradle at the end of repositories:maven

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}
複製代碼

Step 2. Add the dependencyide

dependencies {
	        implementation 'com.github.zfman:LiteMemory:1.0.0'
	}
複製代碼

初始化

  • 你須要先執行LiteMemory的初始化操做,通常將該操做放在Application
public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        LiteMemory.initialize(this);
    }
}
複製代碼
  • 而後再AndroidManifest.xml中配置application
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zhuangfei.preference_demo">

    <!--經過android:name配置application-->
    <application
        android:name=".MyApplication"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
複製代碼

保存數據

須要保存的數據須要以字段的形式存在於實體類中,假設須要保存用戶信息,用戶有用戶名和年齡兩個屬性

User類以下:

public class User {
    private String name;
    private int age = 0;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}

複製代碼

保存數據

User user=new User();
    user.setName("劉壯飛");
    user.setAge(23);

    //保存至本地
    LiteMemory.get().save(user);
複製代碼

獲取數據

User user=LiteMemory.get().from(User.class);

    //此時user內的屬性已被賦值,能夠使用
    //若本地不存在,則會使用User類構造一個實例,
    //此時user不爲空,可是user對象中的屬性值多是空的
    String name=user.getName();
    int age=user.getAge();
複製代碼

刪除數據

LiteMemory.get().delete(User.class);
複製代碼

判斷數據是否存在

boolean has=LiteMemory.get().exist(User.class);
複製代碼

混淆

本庫沒有混淆,可是內部採用fastjson進行序列化與反序列化,若是你的項目須要混淆的話請自行查閱資料添加

相關文章
相關標籤/搜索