0

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

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

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

4

1 回答 1

0

如果我正确理解您的问题,您想通知包含您的AugmentedView的Activity/Fragment

一种简单的方法是使用 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();
    }

    } 
于 2013-03-01T14:43:53.903 回答