Android AnyPref快速存储

1.首先在根目录

allprojects {
    repositories {
        maven { url "https://jitpack.io" }
    }
}

2.引入依赖

implementation 'com.github.NashLegend:AnyPref:1.2.6'

3.新建Bean类(AnyPref要保存的字段一定要声明成public

@PrefModel("usermessage")
public class User {

    @PrefField("username")
    public String userName;

    @PrefField("password")
    public String password;

    public User() {
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

注:
@PrefModel:用于注解类,括号内的字符串表示保存此类的对象时对应的键,若不添加此注解则为类全名
@PrefField:用于注解参数,括号内表示其对应的键,若不添加此注解则为字段全名,其中的numDef,boolDef,strDef表示读取不到时使用的默认值,如@PrefField(numDef = 110),@PrefField(boolDef = true), @PrefField(value = "setValueWithSpecifiedKey", strDef = {"1", "2", "3", "4"})//默认值是[1,2,3,4]
@PrefIgnore:添加此注解表示不保存这个字段
@PrefSub:此注解用于标识子对象,虽然SharedPreference不能存储对象,但标注了此注解后可以存取,

@PrefSub(nullable = false)//nullable 表示取子对象的时候,子对象是否可以为 null,默认是 true
public SubSample son1;

@PrefArrayList:标注了@PrefArrayList 的 ArrayList 会被保存,必须要有泛型信息,且不能是基本类型的

@PrefArrayList(nullable = true, itemNullable = true)//nullable 同上,itemNullable 表示列表中的数据是否可以为 null,默认为 true
public ArrayList sampleArrayList;

4.在MainActivity中创建:

在Oncreate()中:
AnyPref.init(this);

存储:

User user = new User();
user.setUserName(sUserName);
user.setPassword(sPassword);
 AnyPref.put(user);
    //或者
AnyPref.put(user, "your prefName");第二个参数是自己定义的保存此类的sharedPreferences name,不是PrefModel定义的那个name

读取:

User user = AnyPref.get(User.class,"your prefName");
password.setText(user.getUserName());

源代码:
源代码

你可能感兴趣的:(Android AnyPref快速存储)