2016-09-22 12 views
0

SearchViewとListViewがあります。私は私のonQueryTextChangeとonQueryTextSubmit方法は次のとおり私のonCreate方法SearchViewは空白を含むListView項目をフィルタリングしていません

ListAdapter listAdapter = new ListAdapter(this, ChainageFactory.getAllListViewItems()); 
listView.setAdapter(listAdapter); 
listView.setTextFilterEnabled(true); 
filter = listAdapter.getFilter(); 
searchView.setIconifiedByDefault(false); 
searchView.setOnQueryTextListener(this); 
searchView.setSubmitButtonEnabled(true); 
searchView.setQueryHint("Search Here"); 

にリストビュー項目をフィルタリングするために、次のコードを使用しています。

@Override 
    public boolean onQueryTextChange(String newText) { 
     if (TextUtils.isEmpty(newText)) { 
      filter.filter(null); 
     } else { 
      filter.filter(newText); 
     } 
     return true; 
    } 

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

My ListViewは、次の項目で構成されています。

  1. DIK70300-DI K7 300ミリメートルダイア
  2. DIK70300-DI K7 400ミリメートルダイア
  3. AIK70300-DI D7 450ミリメートルダイア
  4. AIK70300-DI D7 500ミリメートルダイア

イムユーザーがDIまたはAIを入力した場合、ユーザーがD7を入力し、その後にスペースを入力した場合に、ListViewアイテムをフィルタリングすることはできません。どのようにこれを整理することができますか?

答えて

1

ないlistAdapter

@Override 
public boolean onQueryTextChange(String newText) { 

    for(int i = 0; i < ChainageFactory.getAllListViewItems().size(); i++){ 
     if (TextUtils.isEmpty(newText)) { 
      filter.filter(null); 
     } else { 
      String itemName = ChainageFactory.getAllListViewItems().YourItem(); 

      if(itemName.contains(newText)){ 
       //Perform your operation with filtered data 
      } 
     } 
    } 
    return true; 
} 

public boolean onQueryTextSubmit(String query) { 
    return false; 
} 
であなたの実際のリストにフィルタを実行します
2

Tyringを使用して、関数に.trim()を挿入します。私にとってはうまくいった。

関連する問題