ActiveAndroid返回始终为空的结果

时间:2016-04-06 12:55:36

标签: android sqlite activeandroid

我尝试将ActiveAndroid添加到我的第一个Android应用中。到目前为止没有错误,我的项目正在保存(我用sqlite管理器检查过)但是无论我使用什么查询,结果总是为空。我只有一个模型(Todo),只有字符串,布尔值和一个日期可以保存。 (见下文)

我使用Android 6.0 SDK 23和Genymotion模拟器以及ActiveAndroid 3.0。

我尝试了什么:

  • ArrayList<Model> list = Model.all(Todo.class);
  • ArrayList<Model> list = new Select().from(Todo.class).execute();
  • Todo item = return new Select().from(Todo.class).where("id = ?", 1).executeSingle();
  • ...

列表的大小始终为0,而​​item(搜索一个项目时)始终为null。 我没有错。

有什么想法吗?

这是我的模特:

package xyz.tdoo.model;

import * 

@Table(name = "Todos")
public class Todo extends Model {
    @Column(name = "name")
    public String name;

    @Column(name = "description")
    public String description;

    @Column(name = "done")
    public Boolean isDone = false;

    @Column(name = "favourite")
    public Boolean isFavourite = false;

    @Column(name = "duedate")
    public Date dueDate;

    public Todo(String name) {
        super();
        this.name = name;
    }

    public static ArrayList<Todo> findAll() {
        return new Select().from(Todo.class).execute();
    }

    public static Todo findOne(int id){
        return new Select().from(Todo.class).where("id = ?", id).executeSingle();
    }
}

2 个答案:

答案 0 :(得分:1)

我最终使用SugarORM。它符合我的简单需求,从一开始就有效。 另外我发现ActiveAndroid有点老了,不再维护了。

答案 1 :(得分:0)

你需要添加空的constuctor:

public Todo() {
    super(); 
}