Java对象通知父类

时间:2013-03-01 14:31:14

标签: java android class notify

我正在Android中开发一个应用。我有一个名为AugmentedView的类,扩展并负责绘制标记。在onDraw方法中,当它检测到冲突时,我想通知父类,它是主类,并包含主gui以在屏幕中启用一个按钮。我使用以下代码在onCreate of Main类中调用AugmentedView类:

    AugmentedView augmentedView = new AugmentedView(this);
    augmentedView.setOnTouchListener(this);
    augmentedView.setLayoutParams(new LayoutParams(
            LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    liveLayout.addView(augmentedView);

如何通知主类更改并将标记列表传递给它?

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您需要通知包含 AugmentedView 活动/片段

一种简单的方法是使用java回调。

//在活动

 //onCreate() ..

AugmentedView augmentedView = new AugmentedView(this);
augmentedView.setOnTouchListener(this);
augmentedView.setCollisionlistener(new Collisionlistener());
augmentedView.setLayoutParams(new LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
liveLayout.addView(augmentedView);

}
 ..
public class Collisionlistener {
    public void onCollosion (){
     // write code to handle collosion
    }

}


    // in your AugmentedView

    private Collisionlistener mListener;

    public void setCollisionlistener(Collisionlistener listener){
        mListener = listener;
    }

    public void onDraw(Canvas canvas){
    // your code
    if (collosionDetected && mListener != null) {
        mListener.onCollosion();
    }

    }