搜索并过滤Android ListView

时间:2016-12-10 09:35:44

标签: android listview

我在使用搜索栏过滤Android ListView时遇到问题。 在我扩展我的代码并添加一个CustomList类之前,它工作正常。 CustomList类用于填充包含图像和子文本的ListView。我的CustomList类扩展了ArrayAdapter。

这是两个类的相关代码

public class Reservation {
    private String name;
    private int timeSlot;
    private Reservable myReservable;

    public Reservation(String name, int timeSlot) {
        this.name = name;
        this.timeSlot = timeSlot;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getTimeSlot() {
        return timeSlot;
    }

    public void setTimeSlot(int timeSlot) {
        this.timeSlot = timeSlot;
    }

    public Reservable getMyReservable() {
        return myReservable;
    }

    public void setMyReservable(Reservable myReservable) {
        this.myReservable = myReservable;
    }

    public boolean isActive() {
        return false;
    }

和MainActivity:

public class CustomList extends ArrayAdapter<String> {

private final Activity context;
private final String[] languages;

public CustomList(Activity context, String[] languages) {
    super(context, R.layout.list_single, languages);
    this.context = context;
    this.languages = languages;
}
}

当我在搜索栏中输入文本时,只剩下listView中的第一个元素。其余的被过滤掉了:

Image of the bug

我不确定我遗漏或未看到的内容。有人请帮忙。

1 个答案:

答案 0 :(得分:1)

如果您要自定义ArrayAdapter,那么您应该实现一个可过滤的接口来搜索适配器中的数据。

查看以下链接: Custom getFilter in custom ArrayAdapter in android