Фильтр ListView при изменении вкладки - PullRequest
1 голос
/ 26 февраля 2012

Мне нужно отфильтровать ListView в одном действии с тремя вкладками.Например, у меня есть одна вкладка, где отображается информация обо всех устройствах (пользовательский объект), но когда я перехожу на другую вкладку, она должна отображать устройства «type1», а когда я перехожу на последнюю вкладку, она отображает устройства"type2".

У меня уже есть пользовательский адаптер, и я хочу знать, могу ли я использовать интерфейс Filterable (... реализует Filterable ...) и переопределить метод getFilter () (например, на основе фильтрациина editText) или я должен использовать другой подход?

Благодарен за любую помощь.

Ответы [ 2 ]

1 голос
/ 07 июня 2012

Я решаю это с помощью метода onTabChanged(), например: (в onCreate()):

mTabHost.setOnTabChangedListener(new OnTabChangeListener() {

        public void onTabChanged(String tabId) {
            Log.d(debugTag, "onTabChanged: tab number=" + mTabHost.getCurrentTab());

            switch (mTabHost.getCurrentTab()) {
            case 0:
                myDevAdapter.getFilter().filter("all");
                break;
            case 1:
                myDevAdapter.getFilter().filter("type1");
                break;
            case 2:
                myDevAdapter.getFilter().filter("type2");
                break;

            default:
                Log.d(debugTag,"error in onTabChanged");
                break;
            }
        }
    });
0 голосов
/ 28 февраля 2012

Я еще не использовал onfocuschange или filterable, но из того, что вы сказали, звучит так, как будто вам нужно будет использовать их вместе.

Другой возможный подход - настроить фильтр onclicklistener для вас. Возникли небольшие проблемы с изображением этого. Если у меня есть правильная идея. Вы отобразите ~ 100 пунктов. Затем нажмите вкладку и ~ 50 покажет. Затем нажмите на другую вкладку, другой ~ 50 шоу. Перейдите на последнюю вкладку и все снова покажете?

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