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
반응형
'Android' 카테고리의 다른 글
(커스텀 다이얼로그) 다이얼로그 안에 스피너와 EditText 넣기. (0) | 2018.05.12 |
---|---|
뷰페이저 (0) | 2018.05.10 |
스피너 값(아이템) 변경 이벤트 (0) | 2018.05.09 |
recyclerView 아이템 선택(클릭) 이벤트 (전체) Adapter 내에서... (0) | 2018.05.02 |
안드로이드 recyclerView 아이템 클릭 이벤트 이슈 (0) | 2018.05.02 |