【发布时间】:2014-11-10 19:18:28
【问题描述】:
我的问题如下:我想在我的 JSON 数据生成的 ListView 中实现搜索机制,但我不知道在我的情况下该怎么做。
我找到了很多示例,但我想实现最简单的解决方案,尤其是可以理解的解决方案。
这是我的带有适配器和 MainActivity 类的 Pastebin。
你能给我什么建议吗?我被卡住了。
【问题讨论】:
-
是否需要保留在json中?有许多库可以为您提供更易于使用的数据。除此之外,
simplest和understandable是相对术语。 -
嗨,是的,它们需要保留在 JSON 中,因为我通过 POST(PHP 页面)将数据直接发送到 JSON 文件,然后 JSON 将数据发送到应用程序。在我的情况下,另一个选项只能是 XML。是的,最简单易懂与两件事有关:第一件事是我只需要使用 EditView 进行搜索,仅此而已,“可理解”意味着我可能不希望有人粘贴代码并说“这是我的问题的解决方案”,但在我的情况下我无法理解。
-
我个人建议研究 GSON(我会说 Volley,但听起来你已经建立了网络,可能不值得重建它)。 GSON 将让您将 JSON 转换为对象(反之亦然),使其更易于使用。完成后,搜索可能会更简单,因为实际上不需要手动解析。
-
那么手动解析呢?同时我会搜索 Volley,但是,正如你所说,如果它只是某些代码行的含义,我认为为这种特殊情况找到解决方案将是最好的方法(我不想研究另一个如果不是绝对必要的话,现在就去图书馆)
-
嗯,我的意思是你真正需要做的就是创建一个可编辑的文本,你可以用它来搜索(EditText 或 SearchView)。在提交时,有一个方法可以解析您的 json 以与您的搜索查询匹配,从这些匹配项中创建一个列表,将您的适配器设置为该列表,并使用 adapter.notifyDataSetChanged() 通知该适配器发生了更改。我会将搜索设为 AsyncTask,这样您就可以在需要时轻松管理进度条,并且不会冻结您的主 UI 线程。
标签: android json listview search