我需要使用三个标签在一个活动中过滤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;
}
}
});