2011-11-10 6 views
0

私はこの質問の通り、MergeAdapterからアダプタを削除したい:MergeAdapter - 子アダプタを削除する+ unregisterDataSetObserver()?

Remove view from MergeAdapter

我々はaddAdapterに子アダプタに登録オブザーバをクリーンアップする必要がありますか()?たとえば、次のように

public void addAdapter(ListAdapter adapter) { 
    pieces.add(adapter); 
    adapter.registerDataSetObserver(new CascadeDataSetObserver()); /// *** /// 
} 

public void removeAdapter(int position) { 
    ListAdapter adapter = pieces.remove(position); 
    adapter.unregisterDataSetObserver(????); //// ??? //// 
} 

私たちはここにdatasetobserverの登録を解除する必要がありますか?

+0

質問のタイトルは実際の質問と何が関係していますか? –

+0

それを指摘してくれてありがとう。 – user291701

答えて

1

もしあなたが望むなら、あなたはできます。しかし、すべてregisterDataSetObserver()は、実際には、参照番号から追加しています。ListAdapterからMergeAdapterの順であることに注意してください。したがって、あなたが削除したListAdapterを破棄している限り、登録されたオブザーバーはガベージコレクションされるべきです。

関連する問題