カスタムアダプターを使用したListViewがArrayAdapterを拡張しています。各項目はオブジェクトです:
public class ListItemObject {
public String messageText;
public long messageTime;
public long fromId;
public long toId;
}
フィルタリング切り替えのメニューにチェック項目を追加したい。したがって、このアイテムがチェックされていない場合、すべてのアイテムが表示されます。このアイテムがチェックされている場合、ListView には、次の条件でフィルター処理されたアイテムのみが含まれている必要があります。
if(fromId==myId || toId==myId) {
//show item
} else {
//don't show item
}
これを実装するには、次の 2 つの方法があります。
独自のフィルターを作成する Filter を拡張します。次に、adapter.getFilter().filter(string_with_fromId_and_toId_in_JSON) を呼び出します。ここに 1 つの問題があります。すべての外観アダプターにフィルターを 1 つしか含めることができません。そして、将来別のフィルターを追加したい場合、それはできません。
アダプターの外部にあるすべてのアイテムを保存し、クリアして、フィルター処理されたデータを再度入力します。それは私にとって便利な方法ではありませんが、私にはできます。
これを実装するにはどうすればよいですか?