2011-11-03 54 views
7

我在ListView上使用文本過濾器,我想擺脫顯示過濾器文本的彈出視圖。有什麼辦法可以刪除這個視圖嗎?如何從列表視圖過濾器中刪除彈出文本?

一些示例代碼:

ArrayList<String> buildingNames = new ArrayList<String>(); 
    ListView list = (ListView)findViewById(R.id.list); 

    list.setAdapter(new ArrayAdapter<String>(this, R.layout.menu_item, buildingNames)); 
    list.setTextFilterEnabled(true); 

    list.setFilterText("test_filter"); 

當我設置了過濾器的文字,很難看,鑑於在ListView控件的底部會彈出顯示了當前過濾器文本:

ListView filter text popup

+0

請提供一些您正在使用的示例源代碼,以分別顯示您遇到的問題。 – pkk

回答

8

我在這裏找到了答案: http://markmail.org/message/7uju6bmmaswag2lu

通過調用setTextFilterEnabled()您可以請求此彈出窗口。如果您不想要 ,請禁用文本過濾。這是一個交互功能 爲用戶。它並不意味着以編程方式使用。如果你想 以編程方式篩選您的適配器,直接在 適配器上調用用getFilter()(如果您的適配器支持篩選。)

羅曼蓋伊

因此,而不是使用setTextFilterEnabled你需要與合作直接過濾像這樣:

CustomAdapter customAdapter = (customAdapter)myListView.getAdapter(); 
Filter filter = customAdapter .getFilter(); 
filter.filter("search string"); 
0

嘗試做這種改變

@Override 
     public boolean onQueryTextChange(String newText) { 
      System.out.println("tap"); 
      yourAdapter ca = (yourAdapter)listview.getAdapter(); 

      if (TextUtils.isEmpty(newText)) { 
       System.out.println("isEmpty"); 
       //listview.clearTextFilter(); 
       ca.getFilter().filter(null); 
      } else { 

       ca.getFilter().filter(newText); 
       //listview.setFilterText(newText); 

      } 
      return true; 
     }