2016-09-22 5 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"); 

에 ListView에 항목을 필터링하려면 다음 코드를 사용하고 있습니다.

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

내 ListView는 다음 항목으로 구성됩니다.

  1. DIK70300-DI K7 300mm 직경
  2. DIK70300-DI K7 400mm 직경
  3. AIK70300-DI D7 450mm 직경
  4. AIK70300-DI D7 500mm 직경

임 사용자가 DI 또는 AI를 입력하면 ListView 항목을 필터링 할 수 있지만 사용자가 K7 뒤에 공백을 입력하면 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()을 함수에 넣습니다. 나를 위해 그것은 잘 작동했습니다.

관련 문제