第一种方式:当更改数据,类型传进来是默认值,
setToDefault("字段") 方法 来修改
例如:新建一个表
public class Persion extends LitePalSupport {
private int id;
private String name;
private boolean isadmin;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isIsadmin() {
return isadmin;
}
public void setIsadmin(boolean isadmin) {
this.isadmin = isadmin;
}
}
//新增一条数据
Persion persion=new Persion();
persion.setName("小明");
persion.setIsadmin(true);
persion.save();
Log.i("app", "useAppContext: "+ LitePal.findAll(Persion.class));
打印I/app: useAppContext: [{id=1, name='小明', isadmin=true}]
现在我去修改id=1 的数据,发现打印处理的还是isadmin 还是true
Persion persion=new Persion();
persion.setName("小花");
persion.setIsadmin(false);
persion.update(1);
Log.i("app", "useAppContext: "+ LitePal.findAll(Persion.class));
打印I/app: useAppContext: [{id=1, name='小花', isadmin=true}]
解决的方式,就加上上面提到方法
Persion persion=new Persion();
persion.setName("小花");
persion.setIsadmin(false);
persion.setToDefault("isadmin");
persion.update(1);
Log.i("app", "useAppContext: "+ LitePal.findAll(Persion.class));
打印I/app: useAppContext: [{id=1, name='小花', isadmin=false}]
还有int 类型为0的时候也要注意这个问题。
第二种,当你是最新的版本Litepal 3.2.3 ,上面的方式可能不行,你还可以用下面的方式。
Persion persion=LitePal.find(Persion.class,1);
persion.setName("小花");
persion.setIsadmin(false);
persion.save();
完整的学习和使用,可以参考上面这位大佬的文章,比较详细。https://blog.csdn.net/xxdw1992/article/details/104937107