java - 如何使用自定义适配器在 ListView 中进行搜索

标签 java android listview

我查看了以下网站:ListView Example

描述了如何在使用默认适配器的 ListView 中实现搜索功能,并且工作正常。

我如何修改它以便我可以将它用于我的 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 对象。看到这个答案:No results with custom ArrayAdapter Filter

编辑:

@Override
    public Filter getFilter() {
        if(customFilter == null){
            customFilter = new CustomFilter();
        }
        return customFilter;
    }

关于java - 如何使用自定义适配器在 ListView 中进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20506480/

相关文章:

java - REST - 下载用户列表

java - 同步线程以避免 ArrayIndexOutOfBoundsException

java - 填充Webview内容时的Android底部白色条纹

android - HashMap 将 onSaveInstanceState 从 Fragment 存储和恢复到另一个 Activity

android - ListView 中的硬件加速

java - 替换 ![CDATA[xxx]] 中所有匹配 [.*] 的内容,而不替换 CDATA

java - 从 JSON 解析字符串中的 URL

java - 从自定义适配器获取 fragment 中的 UI 元素 ID

java - Android ListView : how to use fast scrolling and alphabetical ordering

java - ListView 行不可点击(添加两个按钮后)