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<SubSample> 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());
源代码:
源代码