问题描述
我最近遇到这样一个问题:ListView 显示城市列表,上面有个 EditText 控件,当在 EditText 输入关键字如‘南’时,ListView 重新显示与此相关的城市列表,从而实现搜索功能。
由于 ListView 用的是系统的 ArrayAdapter,它实现 Filterable 接口,所以这个问题就简单很多了,只需要监听 Edittext 的输入就可以了。
方案
下面是关键代码:
|
|
如果是自定义的Adapter,也可以实现Filterable接口
下面给出ArrayAdapter源码中过滤的关键部分:
|
|