Я пытаюсь реализовать фильтрацию ListView, который использует настраиваемый адаптер объекта, но я не могу найти полезные примеры. Включенный код очень упрощен, поэтому не помните, я не могу использовать обычный ArrayAdapter. У меня есть EditText над ListView, и когда пользователь вводит текст в виджет EditText, я хотел бы фильтровать ListView по тексту, написанному в EditText. Любые предложения будут высоко оценены!
Вот фрагмент из класса активности:
public class management_objects extends Activity {
private static List<User> UserList;
private EfficientAdapter adapter = null;
private ListView objectListView = null;
private EditText SearchText = null;
private static class EfficientAdapter extends BaseAdapter implements Filterable{
    private LayoutInflater mInflater;   
    public EfficientAdapter(Context context) {
        mInflater = LayoutInflater.from(context);
    }
    public int getCount() {
        return UserList.size();
    }
    public Object getItem(int position) {
        return position;
    }
    public long getItemId(int position) {
        return position;
    }
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder; 
        if (convertView == null) { 
            convertView = mInflater.inflate(R.layout.imagelayout_2lines, null);
            holder = new ViewHolder();
            holder.text = (TextView) convertView.findViewById(R.id.managementObjectText);
            holder.subtext = (TextView) convertView.findViewById(R.id.managementObjectSubText);
            holder.icon = (ImageView) convertView.findViewById(R.id.managementObjectIcon);
            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.text.setText(UserList.get(position).getFirstName());
        holder.subtext.setText(UserList.get(position).getLastName());
        holder.icon.setImageResource(R.drawable.user);
        return convertView;
    }
    static class ViewHolder { 
        TextView text;
        TextView subtext;
        ImageView icon;
    }
    @Override
    public Filter getFilter() {
        return null;
    }
}
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.adobjectlist);
    Bundle extras = getIntent().getExtras();
    SearchText = (EditText) findViewById(R.id.SearchBox);    
    SearchText.addTextChangedListener(filterTextWatcher);
    objectListView = (ListView) findViewById(R.id.ObjectList);
    objectListView.setOnItemClickListener(Item_Click);
    adapter = new EfficientAdapter(this);
    ComputerName = extras.getString("COMPUTER_NAME");
    //Get User list from webservice
    ShowUsers();
}
Вот класс пользователя:
 public class User {
  private int UserId;
  private String FirstName;
  private String LastName;
    public int getUserId() {
        return UserId;
    }
    public void setUserId(int UserId) {
        this.UserId = UserId;
    }
    public String getFirstName() {
        return FirstName;
    }
    public void setFirstName(String FirstName) {
        this.FirstName = FirstName;
    }
    public String getLastName() {
        return LastName;
    }
    public void setLastName(String LastName) {
        this.LastName = LastName;
    }
}