Как отобразить "No Result" в фильтруемом ListView?

У меня есть ListView и EditText. Я реализую addTextChangedListener на EditText, чтобы фильтровать содержимое ListView.

leftList.setTextFilterEnabled(true);
et_search.addTextChangedListener(filterTextWatcher);

и затем TextWatcher:

private 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) {

         if (watcherAdapter==null) {
             return;
         }

         watcherAdapter.getFilter().filter(s);

         Log.e(TAG, "OnTextChange: " + s + " start: " + start +
         " before: " + before + " count: " + count + " adapter: " +
         watcherAdapter.getCount());    

    }
};

Условие:

  1. У меня 10 элементов в ListView.

Вопрос:

  1. Когда я ввожу первый символ, почему watcherAdapter.getCount() возвращает 10 (как начальный) в ListView вместо возвращаемого количества результатов фильтра? watcherAdapter.getCount() кажется опозданием на один клик для отображаемого результата в ListView.
  2. Как мне добиться отображения "No Result" в ListView, когда нет результатов совпадения при наборе текста EditText?
6
задан Luksprog 5 May 2012 в 06:19
поделиться