What i did is the below.Among the points which you mentioned i used timer concept and Optimising search using. *start*, *before*, and *count* .
public void onTextChanged(CharSequence s, int start, int before, int count) { System.out.println("S " + s); System.out.println("start " + start); System.out.println("before " + before); System.out.println("count " + count); if (count >= 0 && (start >= 0)) { if (Thread.currentThread().isAlive()) ; { Thread.currentThread().interrupt(); } t = new Thread(null, loadSearchItems); t.start(); } } > > private Runnable loadSearchItems = new Runnable() { @Override public void run() { try { synchronized (t) { t.wait(1000); } } catch (Exception e) { e.printStackTrace(); } System.out.println("AFTER 2 SECONDS *****************"); List<Show> _sortShow = new ArrayList<Show>(); String searchStr = search_feild.getText().toString().trim() .toLowerCase(); _sortShow.clear(); for (int i = 0; i < m_ChannelList.getData().size(); i++) { Show show = m_ChannelList.getData().get(i); if ((((String) show.getListing_name().toLowerCase()) .contains(searchStr)) || (((String) show.getCh_name().toLowerCase()) .contains(searchStr)) ) { _sortShow.add(show); } sorted_ChannelList.setData(_sortShow); } runOnUiThread(updateSearchAdapter); } }; private Runnable updateSearchAdapter = new Runnable() { @Override public void run() { adapter = new LazyAdapterChannelList(ChannelGuideActivity.this, sorted_ChannelList); setListAdapter(adapter); } }; -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en