SearchView Android-与服务器端

问题描述 投票:0回答:1

我有连接到MongoDb的node.js服务器,是否可以将它连接到android studio中的搜索选项?我的意思是搜索的结果(在搜索视图中)将显示在连接到我的node.js服务器的db中。

android node.js mongodb searchview
1个回答
0
投票

我担心没有简单的方法可以将SearchView直接连接到远程服务器的数据库。您必须通过Web服务公开要搜索的数据。

我不是NodeJs专家,但您可以使用Express或任何其他Web服务库来实现此目的。

让我们假设你想根据数据库中的title列搜索数据。对于服务器端,请执行以下步骤:

  1. 定义Web服务入口点以允许远程客户端执行搜索。

客户可以使用以下URL调用此Web服务:https://mynodeserver.com/data?title=some+title

  1. 现在您有了查询字符串,从您的title匹配searchedTitle的MongoDB数据库中读取所有数据。
  2. 将结果作为JSON从我们之前定义的WebService返回给客户端。

以下是ExpressJs的示例服务器端代码:

app.get('/data', function (req, res) {
    let searchedTitle = req.query.title
    let searchResults = searchMongoDb(searchedTitle)
    res.send(searchResults)
})

然后,只要SearchView的内容发生变化,就可以通过Android调用您的网络服务,并在您的网址中传递搜索查询。你可以使用:

  • 一个Android HTTP客户端,如Volley或OkHttp
  • 用于Java的JSON解析库,例如GSON或Jackson。

Android客户端的步骤:

  1. 定义一个SearchView.OnQueryTextListener。根据您的使用情况,您可以在onQueryTextChangedonQueryTextSubmit中编写代码。
  2. 使用Volley / OkHttp调用您的Web服务,根据我之前定义的模板在URL中指定搜索查询。
  3. 将收到的JSON解析为数据列表。
  4. 使用搜索结果执行所需操作:将其显示为建议,或启动新活动以在ListView中显示结果。

希望能帮助到你 !

© www.soinside.com 2019 - 2024. All rights reserved.