搜索使用ListAdapater的ListView,而不是ArrayAdapter

时间:2015-05-15 16:34:30

标签: android listview search android-arrayadapter listadapter

我有一个列表视图,它使用列表适配器作为适配器来填充列表视图。我在网上研究了一种添加搜索的方法,但所有这些都使用了ArrayAdapters。由于我使用列表适配器,函数getFilter()不起作用。这是我的代码

inputSearch.addTextChangedListener(new TextWatcher() {

                    @Override
                    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                        // When user changed the Text
                        adapter.getFilter().filter(cs);   

                    }

                    @Override
                    public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                            int arg3) {
                        // TODO Auto-generated method stub

                    }

                    @Override
                    public void afterTextChanged(Editable arg0) {
                        // TODO Auto-generated method stub                          
                    }

有人可以帮助我找到另一种方法,以便以一种简单的方式做到这一点吗?

1 个答案:

答案 0 :(得分:0)

在适配器中创建一个函数,如下所示:

public void filter(String charText) { charText = charText.toLowerCase(Locale.getDefault()); objectList.clear(); if (charText.length() == 0) { objectList.addAll(objectAsArraylist); } else { for (Object v : objectAsArraylist) { objectList.add(v); } } notifyDataSetChanged(); }

其中objectList是您传递给适配器的列表,objectAsArraylist是传递给arraylist的objectList

然后,您可以在onTextChanged上调用此方法:

adapter.filter(text)