Фильтр EditText работает медленно при фильтрации данных - PullRequest
1 голос
/ 30 октября 2009

Мой ListView содержит более 3000 строк. И когда я набираю на EditText для фильтрации данных в моем ListView, это работает медленно. Посмотри мой код здесь

final TextWatcher textChecker = 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) {

        filterData(search.getText().toString());

    }
};

private void filterData(String textinput){
    mCursor = mHelperData.searchData(textinput);
    startManagingCursor(mCursor);

    String[] from = new String[]{ MyData.KEY_ROWID,
            MyData.KEY_TITLE, MyData.KEY_DESCRIPTION };

    int[] to = new int[]{ R.id.id, R.id.title, R.id.description, R.id.icon };       
    setListAdapter(new MyAdapter(this, R.layout.list_row, mCursor, from, to ));
}

Я думаю, что получение данных с помощью курсора не очень хороший способ. Итак, есть ли лучший способ улучшить речь в этом случае?

Ответы [ 2 ]

3 голосов
/ 30 октября 2009

Придумайте шаблон навигации, который не требует от пользователя прокрутки или фильтрации 3000 строк.

Прокрутка или фильтрация 3000 строк будет очень раздражать на четырехъядерном рабочем столе с 4 ГБ ОЗУ, непрерывным питанием от сети переменного тока, 19-дюймовым ЖК-дисплеем, полноразмерной клавиатурой и стандартной мышью.

Аналогичным образом, ни один веб-сайт, на котором стоит упоминать о сбрасывании 3000 записей о пользователе на одной странице ... и люди, использующие веб-браузеры, все еще используют полноразмерные экраны, клавиатуры и мыши во многих случаях.

Просеивать 3000 строк на телефоне - безумие. Не заставляйте пользователей делать это. Например, разделите эти 3000 строк на категории и попросите пользователя сначала выбрать категорию.

1 голос
/ 30 октября 2009

Просто чтобы добавить к ответу Маркса - я недавно столкнулся с той же проблемой, и разработал учебник на Androidguys.com, который демонстрирует, как можно кодировать «бесконечный» список

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...