Android SearchView 에서 숫자검색, 초성검색, 자동검색 완성 기능 추가된 코드다.
// Filter Class public void filter(String charText) { charText = charText.toLowerCase(Locale.getDefault()); lvItemList.clear(); if (charText.length() == 0) { lvItemList.addAll(addressItemList); } else { for (Address_Item wp : addressItemList) { if(Utils.isNumber(charText)){ // 숫자여부 체크 if(wp.getMobileNO().contains(charText) || wp.getOfficeNO().contains(charText)){ // 휴대폰번호 또는 사무실번호에 숫자가 포함되어 있으면 lvItemList.add(wp); } } else { String iniName = HangulUtils.getHangulInitialSound(wp.getUserNM(), charText); if (iniName.indexOf(charText) >= 0) { // 초성검색어가 있으면 해당 데이터 리스트에 추가 lvItemList.add(wp); } else if (wp.getUserNM().toLowerCase(Locale.getDefault()).contains(charText)) { lvItemList.add(wp); } } } } notifyDataSetChanged(); }
|
public class Utils { public static void CopyStream(InputStream is, OutputStream os) { final int buffer_size=1024; try { byte[] bytes=new byte[buffer_size]; for(;;) { int count=is.read(bytes, 0, buffer_size); if(count==-1) break; os.write(bytes, 0, count); } } catch(Exception ex){} }
// 숫자인지 여부 체크 public static boolean isNumber(String str){ try { Double.parseDouble(str) ; return true; } catch(Exception e){ return false; } }
}
|