我正在Android中开发一个augmented-reality应用。我有一个名为AugmentedView的类,扩展view并负责绘制标记。在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);
如何通知主类更改并将标记列表传递给它?
答案 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();
}
}