2014-04-10 35 views
0

所以,使用回調困惑,我希望有人能夠希望幫助我:)。我做了一個快速的自定義視圖,使用回調來標記我的活動一旦完成。android - 從視圖中刪除自定義回調?

import android.content.Context; 
import android.graphics.Canvas; 
import android.view.View; 

public class CustomViewCallBackTest extends View { 

    AfterDraw callback; 

    public interface AfterDraw { 
     public void afterViewDrawn(Object myEventData); 
    } 

    public void setAfterDrawListener(AfterDraw callback) { 
     this.callback = callback; 
    } 


    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     //callback.afterViewDrawn(myEventData); 
    } 

    public CustomViewCallBackTest(Context context) { 
     super(context); 
    } 

} 

,在我的活動我設置的一切行動這樣的:

CustomViewCallBackTest tbt; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    tbt.setAfterDrawListener(new AfterDraw() { 

     @Override 
     public void afterViewDrawn(Object myEventData) { 
      // TODO Auto-generated method stub 
     } 

    });  
} 

所以我有一個回調,我可以很容易使用,我的問題是如何將我刪除此回調?像android這樣的東西就是GlobalLayoutListener(即getViewTreeObserver()。removeOnGlobalLayoutListener(this))。我已經看到了一些解決方案,即從處理程序中刪除回調(like here),但我還不夠熟悉,無法知道如何將任何應用應用於我的情況。我會很感激,如果有人能告訴我如何刪除我自己的自定義回調=)

回答

0

tbt.setAfterDrawListener(null);怎麼樣?

+0

哈哈真的嗎?在這裏,我想我不得不做一堆新代碼,並像globallayoutlistener一樣去除它。我會給這個鏡頭,謝謝=) – codingNewb

相關問題