【问题标题】:Move on position in GridView在 GridView 中移动位置
【发布时间】:2014-01-09 06:14:16
【问题描述】:

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

但是

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

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

是否有任何解决方案使其完美。

感谢您的帮助...

【问题讨论】:

  • 你是从数据库中弹出还是通过网络服务拉取?
  • 那么您不需要修改查询,例如 Select * from "Table" where "name" like 'search name'
  • 所以我有火灾查询?

标签: android android-gridview android-search


【解决方案1】:

您可以在从数据库中提取数据时设置过滤器,并且每当在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 接口中实现,就可以过滤任何你想要的东西。 Example 这个例子是指 listView 但它也可以与 gridView 一起使用。

【讨论】:

    【解决方案2】:

    此场景最简单的解决方案是运行搜索查询

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

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

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

      addTextChangedListener

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2021-10-08
      • 1970-01-01
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多