将 AutocompleteTextView 与 RESTful 调用一起使用 JSON 中的 returns 建议 - Android Studio
Using AutocompleteTextView with a RESTful call that returns suggestions in JSON - Android Studio
我一直在 google 和堆栈溢出中搜索这个问题的答案,但没有找到任何答案。我正在构建一个 android 应用程序,需要一个自动完成字段 returns 用于搜索的城市名称建议。我找到的唯一指南和示例仅展示了如何使用字符串数组资源实现 AutocompleteTextView。
我已经知道如何调用 REST 自身并解析返回的数据。我只想知道在自动完成视图中实现它的最佳方式。进行 RESTful 调用的 url 仅采用需要超过 1 个字符的城市前缀和 returns JSON.
中的结果
示例:
URL: www.mysite.com/cities/state_id/mi
Returns:
[{"city_id":6595,"city":"Mi Wuk Village"},{"city_id":6877,"city":"Michigan Bluff"},{"city_id":6724,"city":"Middletown"},{"city_id":6594,"city":"Midpines"},{"city_id":5047,"city":"Midway City"},{"city_id":7415,"city":"Milford"},{"city_id":7337,"city":"Mill Creek"},{"city_id":6295,"city":"Mill Valley"},{"city_id":5857,"city":"Millbrae"},{"city_id":7183,"city":"Mills Orchard"},{"city_id":7339,"city":"Millville"},{"city_id":6376,"city":"Milpitas"},{"city_id":7338,"city":"Mineral"},{"city_id":5698,"city":"Minkler"},{"city_id":4208,"city":"Mint Canyon"},{"city_id":4406,"city":"Mira Loma"},{"city_id":3687,"city":"Miracle Mile"},{"city_id":3945,"city":"Mirada"},{"city_id":5631,"city":"Miramonte"},{"city_id":6802,"city":"Miranda"},{"city_id":4201,"city":"Mission Hills"},{"city_id":6270,"city":"Mission Rafael"},{"city_id":5063,"city":"Mission Viejo"}]
我正在考虑用 SQLLite 做一些类似于 this 实现的事情,但是这段代码看起来效率很低,因为每次在实现 TextWatcher 的 CustomAutoCompleteTextChangedListener 中的文本发生变化时,它都会创建一个新的适配器。
如有任何意见,我们将不胜感激。
示例的适配器可能相同,稍作修改
将 MyObject 更改为 class 字段(city_id 和城市)使用 gson 库解析 json 并将 MyObject 作为城市
Creating an instance of my custom adapter everytime the user changes
his city prefix just sounds expensive
在适配器中实现 setData
或类似的方法
this.data = data;
以及更新和调用时
adapter.setData()
adapter.notifyDataSetChanged();
我一直在 google 和堆栈溢出中搜索这个问题的答案,但没有找到任何答案。我正在构建一个 android 应用程序,需要一个自动完成字段 returns 用于搜索的城市名称建议。我找到的唯一指南和示例仅展示了如何使用字符串数组资源实现 AutocompleteTextView。
我已经知道如何调用 REST 自身并解析返回的数据。我只想知道在自动完成视图中实现它的最佳方式。进行 RESTful 调用的 url 仅采用需要超过 1 个字符的城市前缀和 returns JSON.
中的结果示例:
URL: www.mysite.com/cities/state_id/mi
Returns:
[{"city_id":6595,"city":"Mi Wuk Village"},{"city_id":6877,"city":"Michigan Bluff"},{"city_id":6724,"city":"Middletown"},{"city_id":6594,"city":"Midpines"},{"city_id":5047,"city":"Midway City"},{"city_id":7415,"city":"Milford"},{"city_id":7337,"city":"Mill Creek"},{"city_id":6295,"city":"Mill Valley"},{"city_id":5857,"city":"Millbrae"},{"city_id":7183,"city":"Mills Orchard"},{"city_id":7339,"city":"Millville"},{"city_id":6376,"city":"Milpitas"},{"city_id":7338,"city":"Mineral"},{"city_id":5698,"city":"Minkler"},{"city_id":4208,"city":"Mint Canyon"},{"city_id":4406,"city":"Mira Loma"},{"city_id":3687,"city":"Miracle Mile"},{"city_id":3945,"city":"Mirada"},{"city_id":5631,"city":"Miramonte"},{"city_id":6802,"city":"Miranda"},{"city_id":4201,"city":"Mission Hills"},{"city_id":6270,"city":"Mission Rafael"},{"city_id":5063,"city":"Mission Viejo"}]
我正在考虑用 SQLLite 做一些类似于 this 实现的事情,但是这段代码看起来效率很低,因为每次在实现 TextWatcher 的 CustomAutoCompleteTextChangedListener 中的文本发生变化时,它都会创建一个新的适配器。
如有任何意见,我们将不胜感激。
示例的适配器可能相同,稍作修改 将 MyObject 更改为 class 字段(city_id 和城市)使用 gson 库解析 json 并将 MyObject 作为城市
Creating an instance of my custom adapter everytime the user changes his city prefix just sounds expensive
在适配器中实现 setData 或类似的方法
this.data = data;
以及更新和调用时
adapter.setData()
adapter.notifyDataSetChanged();