2014-04-10 34 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

相关问题