- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写自定义 BaseAdapter
(由 Set
支持),我需要通过 CharSequence
(价格范围、颜色等)。
我看了Filterable
接口(interface)和Filter
类,但是 Filter
中的所有方法都使用 CharSequence
。
那么,怎么做呢?我应该将过滤器参数编码为 CharSequence
(也许是 JSON?),还是有更好的方法?
此外,convertResultToString
是什么?方法有什么用?因为我不需要结果是 String
,而是来自 Set
的 Object
,因为我显示的信息比 多>字符串
。
最佳答案
如果您实现了 Filterable
和 Filter
,并且由于您的适配器由一组元素支持,您可以忽略 CharSequences
public FilterResults performFiltering(CharSequence prefix)
方法。在您的适配器中,复制您的一组元素,这将是您将用来填充 ListView
或您正在使用的任何内容的元素。
之后,在 performFiltering(...)
方法中,只需按照您选择的标准删除元素:
private class ClientsFilter extends Filter {
@Override
public FilterResults performFiltering(CharSequence prefix) {
// Thats the result of our filtering process
FilterResults results = new FilterResults();
synchronized (mLock) {
// It's a good idea to work with a copy of the original set of elements, so we can reuse it every time we want to filter
ArrayList<Client> filteredClients = new ArrayList<>(originalClients);
for (int i = 0; i < filteredClient.size(); i++) {
if (// !fit my criteria) {
// We remove the clients that doesn`t fit the criteria, so only the good ones stay here
filteredClients.remove(i);
i--;
}
}
results.values = filteredClients;
results.count = filteredClients.size();
}
return results;
}
@Override
protected void publishResults(CharSequence prefix, FilterResults results) {
// And we use the filtered clients in our ListView, GridView or whatever
listViewClients= (ArrayList<Client>) results.values;
adapter.notifyDataSetChanged();
}
}
一些提示:
synchronized
东西,否则你会遇到一些有趣的错误(没有任何可见原因的竞争条件引起的 NPE)Filterable
过滤过程在后台进行,因此 UI 保持响应adapter.getFilter().filter()
方法,例如在 EditText
关于android - 如何通过 CharSequence 以外的东西过滤 ListView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532229/
我已经坚持了好几天了……很抱歉遇到这样的问题,但是我只是F#本身的初学者。由于关于类型提供程序的讨论很多,所以我决定建立一个类型提供程序并撰写一篇有关它的论文。当我开始时,我不知道什么是类型提供程序。
我正在开发LAN项目唤醒功能,但是我想控制局域网中计算机是否打开。但是我不想使用ICMP或WMI(我的网络上有DC)。那么,对于此问题,是否还有其他选择,例如“套接字连接”,请检查特定端口是否正在使用
我们有一个旧的VB6应用程序,该应用程序使用Crystal Reports XI生成打印报告。我们已经通过经验发现,如果Crystal Reports打印引擎选择了错误版本的 usp10.dll (W
我正在尝试获取有效的 Android 权限列表。我知道 http://developer.android.com/reference/android/Manifest.permission.html
嗨,我是 nginx 的新手,我试图在我的服务器(运行 Ubuntu 4)上设置它,它已经运行了 apache。 所以在我 apt-get install 它之后,我尝试启动 nginx。然后我收到这
如何在VB 6中检查对象的类型-除了'TypeName'之外,是否还有其他方法,因为无法通过'TypeName'进行检查,我希望使用类似QuichWatch窗口的方法。 最佳答案 对于对象变量,请使用
我的 JSP 应用程序中有一个错误。发布后我的 session 被清除: YAHOO.util.Connect.asyncRequest('POST', Url, callback, post
我是一名优秀的程序员,十分优秀!