java - 基于对话框过滤列表适配器

标签 java

我正在尝试在列表适配器中过滤两种类型的餐馆:餐馆和咖啡馆。

以下循环将选定的餐馆类型添加到列表中,该列表将在列表适配器中刷新:

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 语句会因没有明显原因而失败,仅筛选出一家餐厅而不是两家。

有人知道发生了什么事吗?我已经使用了日志记录语句,它显示了循环执行正确的次数,并添加了第一家餐厅,但没有添加第二家餐厅。

谢谢

最佳答案

在这种情况下,您很可能不想按值比较字符串引用,而是使用 equals() 方法。

关于java - 基于对话框过滤列表适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8433535/

相关文章:

java - 为什么线程执行给出不同的输出?

java - 在哪里可以获得正确的 Cassandra Thrift API jar 文件?

java - EJB 查找的初始上下文属性值

java - 无法从内部类转换到类

java - hibernate 一对多。从数据库加载时获取空列表

java - 从 Android 设备到本地服务器的 HTTP 请求

Java正则表达式设置最小字符数

java - JAX-WS Web 服务内部的 EJB 对象空指针异常

java - 为什么 JSON 响应是 200

java - 使用 log4J 记录静态方法