2017-02-24 81 views
2

我正在学习本教程,我在可筛选searchview上看到一个大黑盒子。几乎像烤面包。任何想法是什么以及如何摆脱它?我搜索了开发人员文档,但无法找到任何信息。当我删除onQueryTextChange的一部分时,它会完全停止过滤。许多亲切的问候可过滤searchview上的大黑盒子

http://www.coderzheaven.com/2013/06/01/create-searchview-filter-mode-listview-android/

enter image description here

见代码:

SearchView search = (SearchView) findViewById(R.id.search); 
    ListView list = (ListView) findViewById(R.id.listView); 

    final String[] mStrings = {"1", "2", "text", "more text", "more text here"}; 

    list.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mStrings)); 
    list.setTextFilterEnabled(true); 
    setupSearchView(); 

...

private void setupSearchView() { 
    search.setIconifiedByDefault(false); 
    search.setOnQueryTextListener(this); 
    search.setSubmitButtonEnabled(false); 
    search.setQueryHint("Search Here"); 
} 

public boolean onQueryTextChange(String newText) { 
    if (TextUtils.isEmpty(newText)) { 
     list.clearTextFilter(); 
    } else { 
     list.setFilterText(newText.toString()); 

    } 
    return true; 
} 

public boolean onQueryTextSubmit(String query) { 
    return false; 
} 
+1

您能不能更新您的文章以包含您的代码? –

+0

*帖子编辑为 –

回答

1

变化list.setTextFilterEnabled(true);list.setTextFilterEnabled(false);

也能改变你onQueryTextChange到下面:

@Override 
public boolean onQueryTextChange(String newText) { 
    CustomAdapter customAdapter = (customAdapter)list.getAdapter(); 
    Filter filter = customAdapter.getFilter(); 


    filter.filter(newText); 
    return true; 
} 

Google

setTextFilterEnabled启用或禁用型过滤器窗口。如果启用,在此视图具有焦点时键入将过滤孩子以匹配用户输入。

+0

不幸的是,将其改为false会使整个列表不可用。我只是试图删除大黑框(正如在文本'AB'中看到的那样)。 –

+0

请检查我修改的帖子。 –

+0

太棒了!看起来像铸造一个单独的过滤器工作! –