使用activeAndroid和SearchView检索CursorAdapter



我试图在工具栏中实现一个"android.support.v7.widget.SearchView",该工具栏应该为用户提供一些建议。

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

以下链接似乎已被弃用,因为.toSql()需要专用访问权限,并且"缓存"未解析。

知道吗?

您可以使用通过ActiveAndroid创建光标

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

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

请注意,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}
);

相关内容

  • 没有找到相关文章

最新更新