我看了以下网站: ListView示例
其中描述了如何在使用默认适配器的列表视图中实现搜索功能,并且效果很好。
如何修改它,以便可以将其用于列表视图的自定义适配器?
部分代码为:
dataList = (ListView) findViewById(R.id.lvFiles); tvQuote = (TextView) findViewById(R.id.tvDisplay); tvQuote.setTypeface(Typeface.createFromAsset(MainActivity.this.getAssets(), "fonts/roboto.ttf")); for (int y=0; y<strNamesOfAllah.length;y++) { name = strNamesOfAllah[y]; meaning = strMeaning[y]; rowsArray.add(new SetRows(R.drawable.icon, name, meaning)); } adapter = new SetRowsCustomAdapter(MainActivity.this, R.layout.customlist, rowsArray); dataList.setAdapter(adapter); dataList.setClickable(true);
您需要覆盖适配器内部的getFilter并返回您创建的新的customFilter对象。看到这个答案:
编辑:
@Override public Filter getFilter() { if(customFilter == null){ customFilter = new CustomFilter(); } return customFilter; }