我正在开发一个 Android 应用程序,其中我有60 个绑定的项目,每页GridViewAdapter
显示9 个项目并正常工作。
但
我想使用项目名称从这 60 个项目中进行搜索,并希望专注于.EditText
我已经完成了代码,但仅从当前显示的9 个项目中进行搜索。
有没有使它完美的解决方案。
您的帮助总是很感激...
我正在开发一个 Android 应用程序,其中我有60 个绑定的项目,每页GridViewAdapter
显示9 个项目并正常工作。
但
我想使用项目名称从这 60 个项目中进行搜索,并希望专注于.EditText
我已经完成了代码,但仅从当前显示的9 个项目中进行搜索。
有没有使它完美的解决方案。
您的帮助总是很感激...
您可以在从数据库中提取数据时设置过滤器,并且只要在 edittext 中更改文本时更改 sql 中的问题
Select * from table where name="nameFromEditText"
*表示您的列。使用 * 选择全部不好
或者如果您使用 contentProvider 构造正确的问题到 db
mCursor = getContentResolver().query(
URI // The content URI of the words table
YOUR_COLUMNS_HERE, // The columns to return for each row
NAME_OF_COLUMNS , // Selection criteria
ARGUMENTS_WHAT_NEED_TO_MATCH_TO_THESE_COLUMNS, // Selection criteria
SORT_ORDER);
或者您可以为您的 gridView 实现可过滤适配器。只需在 GridViewAdapter Filterable 接口中实现,就可以过滤任何你想要的东西。 示例此示例引用 listView,但它也可以与 gridView 一起使用。
这种情况下最简单的解决方案是运行搜索查询
Select * from TableName where Name="Given name from Edit text"
您可以通过两种方式运行此查询
如果您想在每次在编辑文本中键入任何字符时运行,然后覆盖覆盖方法
addTextChangedListener
如果您想在输入文本的末尾和按钮上运行查询,然后单击按钮运行 Db 查询