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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en