2013-05-15 52 views
1

我已經將SearchView添加到了過濾ListView的ActionBar。Android SearchView過濾列表視圖 - 如何刪除查詢框?

一切工作正常,唯一的問題是當我在SearchView中編寫查詢時,查詢文本也出現在大字體屏幕中間的框中。

我想這是某種查詢預覽..我該如何取消? 我在文檔中找不到任何東西。

謝謝。

enter image description here

+0

的代碼,我從來沒有看到過。你在使用什麼手機? – Falmarri

+0

Nexus 4.這是來自APIDemos示例的搜索過濾器演示。 (所以不是我的代碼)。 – Ran

回答

1

試着改變你實現onQueryTextChange的方式。我評論listview.clearTextFilter();並更改爲ca.getFilter()。filter(null);

下面是我用

 @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; 
     } 
1

這是對ListView(實際上它的父類AbsListview的]文本過濾器。獲取ListView的手柄,並呼籲

yourListview.setTextFilterEnabled(false); 

AbsListView.setTextFilterEnabled(boolean) API文檔。

如果您好奇:他們使用PopupWindow來顯示當前輸入的查詢文本。

+0

是的,這是對的。 –

+3

這工作,但如果我使用它,那麼我不能通過文本filer listview。我確實想過濾沒有彈出窗口。 – Ran

+1

@Ran,[here](http://stackoverflow.com/questions/7999083/how-do-i-remove-popup-text-from-listview-filter)你有解決方案。它涉及到自己管理適配器的過濾器。 –