我试图在工具栏中实现一个"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}
);