我需要使用三个选项卡在一个活动中过滤ListView。例如,我有一个选项卡,其中显示有关所有设备的信息(自定义对象),但当我更改为其他选项卡时,它应显示“type1”设备,当我更改为最后一个选项卡时,它显示设备“TYPE2”。
我已经有了一个自定义适配器,我想知道我是否可以使用Filterable接口(...实现Filterable ...)并覆盖getFilter()方法(比如基于editText的过滤)或者我应该使用另一种方法?
感谢任何帮助。
答案 0 :(得分:1)
我使用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;
}
}
});
答案 1 :(得分:0)
我还没有使用onfocuschange或filterable但是从你所说的话听起来你需要一起使用它们。
另一种可能的方法是设置onclicklistener来过滤。想象一下有点麻烦。如果我有正确的想法。您将显示约100个项目。然后单击一个选项卡,将显示~50。然后单击其他选项卡,另一个~50显示。点击最后一个标签,然后再显示一次?