Android
[안드로이드] sqlite Like 검색 예제
누르님
2017. 4. 17. 14:51
sqlite 에서 Like 검색 예제입니다.
실행 화면은 아래와 같습니다.
코드 작성
UI 처리 부분
public void setChangeListData(String searchKeyword) { if(searchKeyword != null) { if (searchKeyword.length() != 0) { List<ItemMemo> temp = setLikeSearch(searchKeyword); if(temp != null) { setSearchData(temp); return; } } } setLoadListData(oriList); } private void setSearchData(List<ItemMemo> list) { lay_noData.setVisibility(View.GONE); tv_noSearch.setVisibility(View.GONE); if(list.size() == 0) { rv.setVisibility(View.INVISIBLE); tv_noSearch.setVisibility(View.VISIBLE); } else { rv.setVisibility(View.VISIBLE); mAdapter.swap(list); } }
SQLite 쿼리 날리는 부분
/** * Like 검색 */ public List<ItemMemo> setLikeSearch(String keyword) { List<ItemMemo> list = new ArrayList<>(); try { beginTransaction(); Cursor c = select(TABLE_NAME, /**COLUMNS_NAME*/"contents", keyword); if (c != null) { Log.i("test","c : " + c + " , " + c.getCount()); int total = c.getCount(); if (total > 0) { c.moveToFirst(); while (!c.isAfterLast()) { /* 중략 */ list.add(new ItemMemo()); c.moveToNext(); } } c.close(); } } catch (SQLiteException e) { Log.e("test", e.toString()); } finally { endTransaction(); } return list; } public Cursor select(String tableName, String name, String Like) throws SQLiteException{ return getReadableDatabase().query( tableName, null, name+ " LIKE ?", new String[] {"%"+ Like+ "%" }, null, null, null, null); }