我正在尝试过滤两种类型的餐馆:列表适配器中的餐馆和咖啡馆。
以下是将所选类型的餐馆添加到列表中的循环,该列表将在列表适配器中刷新:
for (int i = 0; i < filteredTemp.size(); i++) {
if (filteredTemp.get(i).getType() == _typeOptions[typeSelection].toString()) {
filtered.add(filteredTemp.get(i));
}
}
对于测试我有5个餐馆,因此filteredTemp
的大小为5,而filtered
将以ArrayList
类型Eatery
开头(存储的类别)类型,名称等信息。)
我还将使用餐馆typeSelection = 0
进行测试。 filteredTemp
包含2家餐厅和3家咖啡馆。
因此,这个循环应执行5次并在if语句中执行两次代码。然而,它找到了第一家餐厅,并将其添加到过滤后的ArrayList中,当它找到第二家餐厅时,if语句失败,因为没有任何理由,仅使用一家餐馆而不是两家餐馆过滤。
任何人都有线索是怎么回事?我使用了日志语句,它显示循环执行正确的次数以及添加第一个餐馆而不是第二个餐馆。
由于
答案 0 :(得分:1)
在这种情况下,您很可能不希望按值比较字符串引用,而是使用equals()
方法。