android - 从视图中删除自定义回调?

时间:2014-04-10 00:32:45

标签: android view callback

所以,有点混淆使用回调,我希望有人可以帮助我:)。我做了一个快速的自定义视图,一旦完成提取,就会使用回调来指示我的活动。

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),但我还不熟悉,知道如何对我的情况应用任何东西。如果有人能告诉我如何删除我自己的自定义回调=)

,我一定很感激

1 个答案:

答案 0 :(得分:0)

tbt.setAfterDrawListener(null);怎么样?