我需要使用三个标签在一个活动中过滤ListView。例如,我有一个选项卡,其中显示了所有设备(自定义对象)的信息,但是当我切换到其他选项卡时,它应该显示“ type1”的设备,当我切换到最后一个选项卡时,它显示以下设备的信息“ type2”。

我已经有一个自定义适配器,我想知道是否可以使用Filterable接口(...实现Filterable ...)并覆盖getFilter()方法(例如基于editText的过滤),还是应该使用其他方法?

感谢任何帮助。

最佳答案

我使用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;
            }
        }
    });

07-25 20:40