带有edittext的Android过滤列表视图

时间:2012-03-14 11:30:42

标签: android android-listview

我有一个包含产品的列表视图。我重写了产品的tostring方法:

    @Override
    public String toString() {
        return this.getNaam();
    }

我将addTextChangedListener添加到EditText

tvZoek.addTextChangedListener(new TextWatcher() {               
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            adapter.getFilter().filter(s.toString().toLowerCase());             
        }
        public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
        }
        public void afterTextChanged(Editable s) {
        }
});

当我进行搜索时,列表会被过滤。但是,例如,如果我搜索“Bio”并且列表中有5个产品名称中包含“Bio”,那么列表中的前5个产品,而不是名称中包含“Bio”的5个产品。< / p>

我没有覆盖适配器中的getFilter()方法。

如何展示正确的产品? (我正在使用ArrayAdapter

1 个答案:

答案 0 :(得分:1)

尝试以下方法。

  public void onTextChanged(CharSequence s, int start, int before, int count) {
                    updateList(s.toString);             
                }


public void updateList(String filter) {

List<> tempList = new ArrayLsit<>();

int yourListSize = myList.count();
for (int i = 0; i < myListSize; i++) {
if (filter != null) {
   if (myList.get(i).contains(filter)) {
    tempList.add(myList.get(i));
  }
 }
}

// create adapter using tempList
// setAdapter

}