Это хорошее решение:
TextWatcher filterTextWatcher = new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
lvAdapter.getFilter().filter(s);
lvAdapter.notifyDataSetChanged();
}
};
EditText filterText = (EditText) findViewById(R.id.EditText01);
filterText.addTextChangedListener(filterTextWatcher);