Android

SearchView 공백 값 이벤트 (query 공백처리 )

Machine_웅 2018. 5. 9. 17:46
728x90
반응형

SearchView giveHelpSearch = (SearchView)findViewById(R.id.giveHelpSearch);
giveHelpSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
// 입력한 검색어를 query로 받는다.
// 스크롤 뷰 필터링이 없는 경우는 그냥 검색값만 가지고 찾고
// 필터링이 있는 경우는 필터링 + 입력된값을 가지고 찾는다.

if ( query.equals("")){
// 검색어가 없는 경우
Toast.makeText(giveHelpMainActivity.this, "값없음", Toast.LENGTH_SHORT).show();
setRecyclerView(giveData);
}else if ( locationValue.equals("- 모든지역 -") || locationValue ==null ){
// 입력된 값으로만 찾기
setSearchKeyWordFilter.clear();
for ( int i = 0 ; i<giveData.size(); i++){
if ( giveData.get(i).title.contains(query) || giveData.get(i).content.contains(query)){
setSearchKeyWordFilter.add(giveData.get(i));
}
}
setRecyclerView(setSearchKeyWordFilter);
}else{
// 스피너 값 + 입력된 값으로 찾기.
setSearchKeyWordFilter.clear();
for ( int i = 0 ; i < giveData.size(); i++){
if ( giveData.get(i).location.equals(locationValue)){
if ( giveData.get(i).title.equals(query) || giveData.get(i).content.contains(query)){
setSearchKeyWordFilter.add(giveData.get(i));
}
}
}
setRecyclerView(setSearchKeyWordFilter);
}
return true;
}

@Override
public boolean onQueryTextChange(String newText) {
// onQueryTextSubmit의 query에는 빈값이나 null을 받아들이지 않는다.
// 그래서 텍스트 입력 변경시 공백인 경우 다시 onQueryTextSubmit 를 호출하면서 인자로 빈공백을 넣어준다.
if(newText.equals("")){
this.onQueryTextSubmit("");
}
return false;
}
});
728x90
반응형