如何在保持字符状态的情况下动态地向自动完成文本视图添加建议

如何在保持字符状态的情况下动态地向自动完成文本视图添加建议

问题描述:

我面临一些问题,在AutoCompleteTextView中,我必须在每个按键之后显示建议。问题是,建议列表是动态的,就像Google的建议功能一样。这意味着新的建议应该添加,因为用户不断输入加上所有匹配的旧建议应该显示。

例如

我写了“te”,然后它应该显示以前的建议,如“test 1”和“test 2”,以及我将从WebAPI获得的新建议。假设WebAPI给了我“茶”和“紧张”这个词。

现在,AutoCompleteTextView将以“te”作为字符串,下面显示了所有四个建议。

这正是我要找的。

看起来很简单,但却显示出一种奇怪的行为。

我使用的是默认的ArrayAdapter类实例,我正在全局声明该类实例。

arrayAdapter=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,suggestions);word.setAdapter(arrayAdapter);

建议是ArrayList。

从WebApi获得新结果后,我只需调用

arrayAdapter.notifyDataSetChanged();

刷新附带的数据观察者和视图(在本例中是AutoCompleteListView)。

但它结束了一些建议。

当我不使用notifyDataSetChanged();它显示了所有的建议,不管我输入了什么字符。

我尝试过使用自定义筛选器,但它们都没有帮助,因为我不能使用international fyDataSetChanged()。

我正在张贴一个图片,以避免混淆。

https://img.mukewang.com/5cf0ed680001583112800800.jpg

我很困惑为什么notifyDataSetChanged();不起作用了。我没有使用具有相同arrayAdapter实例的列表的任何其他引用。我真的很怀疑这是否是一个参考问题。


HUH函数
浏览 473回答 2
2回答

万千封印

您已经在ArrayAdapter的子类中实现了custome过滤器,在PerforFilter方法中,您必须执行网络调用并从服务器获取数据。您可以在主数组中设置此数据。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java