-1

我正在开发一个 Android 应用程序,其中我有60 个绑定的项目,每页GridViewAdapter显示9 个项目并正常工作。

网格视图

我想使用项目名称从这 60 个项目中进行搜索,并希望专注于.EditText

我已经完成了代码,但仅从当前显示的9 个项目中进行搜索。

有没有使它完美的解决方案。

您的帮助总是很感激...

4

2 回答 2

0

您可以在从数据库中提取数据时设置过滤器,并且只要在 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 一起使用。

于 2014-01-09T06:28:57.080 回答
0

这种情况下最简单的解决方案是运行搜索查询

Select * from TableName where Name="Given name from Edit text"

您可以通过两种方式运行此查询

  1. 如果您想在每次在编辑文本中键入任何字符时运行,然后覆盖覆盖方法

    addTextChangedListener

  2. 如果您想在输入文本的末尾和按钮上运行查询,然后单击按钮运行 Db 查询

于 2014-01-09T06:35:30.197 回答