使用activeAndroid和SearchView检索CursorAdapter

时间:2015-12-10 18:45:06

标签: android searchview android-cursoradapter

我尝试在我的工具栏中实现“android.support.v7.widget.SearchView”,他应该向用户提供一些建议。

我希望activeAndroid可以为我提供一种直接从我的查询中检索CursorAdapter的方法(基本上是一个getAll())。

following link似乎已被弃用,因为.toSql()需要私有访问,而“Cache”未解析。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用以下命令通过ActiveAndroid创建光标:

Cursor cursor = ActiveAndroid.getDatabase().rawQuery("SELECT * FROM TABLE", null);

你需要自己构建的CursorAdapter,但是非常简单并且定义适配器"您提供的链接部分应该为您提供入门所需的内容。

答案 1 :(得分:1)

请注意,ActiveAndroid 3.1.0确实将.toSql()显示为公共。

您需要做的一件事是确保您的ActiveAndroid数据库模型包含预期的_id列,默认情况下不包含ActiveAndroid。您将要卸载应用程序或执行数据库迁移以查看对基础数据库模型的更改。否则您可能会收到此错误

java.lang.IllegalArgumentException: column '_id' does not exist

包含预期的'_id'列,默认情况下不包含ActiveAndroid:

@Table(name = "Items", id = BaseColumns._ID)

请求光标如下:

public Cursor getCursor() {
    String sql = new Select()
            .from(Item.class)
            .toSql();
    String[] params = null;
    Cursor cursor = Cache.openDatabase().rawQuery(sql, params);
    return cursor;
}

然后你可以创建一个这样的适配器:

ListAdapter adapter = new SimpleCursorAdapter(context,
        android.R.layout.simple_list_item_1,
        c, new String[] {"Name"}, new int[] { android.R.id.text1}
);