【发布时间】:2015-10-26 16:15:01
【问题描述】:
我有一个用户注册和登录的简单应用,我希望他们能够搜索其他用户。
我正在使用 parse.com 来存储我的用户及其详细信息,并且一直在寻找一种方法来搜索用户(使用姓名、电话号码、电子邮件等)并将它们全部显示在列表视图中,但我空空如也。大多数答案和教程都涉及使用 ParseQueryAdapter,但看起来该类不再包含在 SDK 中。
有人有这方面的经验吗?
感谢您的宝贵时间
编辑:我一直在搞乱 ParseQuery,试图得到一些东西。这是我目前所拥有的:
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
ParseQuery<ParseUser> query = ParseUser.getQuery();
//TODO search function
query.whereContains("name", searchText.getText().toString().trim());
query.findInBackground(new FindCallback<ParseUser>() {
@Override
public void done(List<ParseUser> objects, ParseException e) {
if (e == null) {
Log.d("Brand", "Retrieved " + objects.size() + " Brands");
for (ParseObject dealsObject : objects)
{
Log.i("USERNAME", dealsObject.getString("name"));
// use dealsObject.get('columnName') to access the properties of the Deals object.
}
} else {
Log.d("Brand", "Error: " + e.getMessage());
}
}
});
}
});
此代码将搜索结果的数量以及每个测试结果的“名称”属性输出到日志。
此外,我已经为列表视图中的每个项目进行了布局,其中包含姓名、电子邮件、电话号码等详细信息。早些时候,在我开始使用 Parse 之前,我使用本地 MySQL 数据库来存储我的用户。然后,我将搜索返回 JsonArray 的用户,并将每个属性放入自定义的“searchresult”对象中,该对象具有用于搜索属性的 get() 和 set() 方法。之后,我有一个 ArrayAdapter,我将结果添加到其中。这种方法效率有点低,尤其是因为我不是 PHP 和 Json 方面的专家。
【问题讨论】:
-
我假设您使用的是 SDK 的
ParseQuery。 (如果是这样,请在问题中指出。)你能告诉我们你是如何使用它的吗?例如,硬编码从 your 数据集获取结果的查询?一旦我们有了这些,我们就可以向您展示如何使用结果构建ListView。 -
到目前为止,我还没有一个有效的 ParseQuery,因为我一直在试图弄清楚它是如何工作的,以及它是如何返回结果的。理想情况下,我认为我需要它来返回与搜索字符串匹配的用户列表。我会用我目前所拥有的更新帖子
-
我用一些返回结果的代码编辑了帖子。尽管这仅按“名称”搜索,但理想情况下它会搜索每个字段。不过感谢您的链接,我一定会检查出来
-
你试过
whereStartsWith
标签: java android listview search parse-platform