Android开发之动态检索(Filter)联系人

1. 将所有联系人都转换为数字串,存到列表中。

将联系人姓名转换为数字串。例如,张丽思创->zlsc->9572。

过程解析:

张 – zhang – z – 9

丽 – li – l – 5

思 – si – s –7

创 – chuang – c – 2

2. 让ContactListAdapter实现接口android.widget.Filterable

在接口方法getFilter()中创建Filter对象,实现Filter类中定义的两个方法performFiltering()和publishResults()。

3. 让EditText控件注册TextWatcher。

mSearchEditView = (EditText) findViewById(R.id.search_contact);
mSearchEditView.addTextChangedListener(this);

ContactListActivity实现结果TextWatcher,实现其三个抽象方法

public void beforeTextChanged(CharSequence s, int start, int count, int after)

public void onTextChanged(CharSequence s, int start, int before, int count)

public void afterTextChanged(Editable s)

在onTextChanged方法中执行语句
mListAdapter.getFilter().filter(s);

原文地址:https://www.cnblogs.com/fengzhblog/p/3182194.html