0

私はAndroidでAugmentedViewと呼ばれる1つのクラスがあり、を拡張し、マーカーを描画する責任があります。onDrawメソッドで衝突を検出したときに、メインクラスであり、画面の1つのボタンを有効にするためのメインGUIを含む親クラスに通知したいと思います。次のコードを使用して、onCreateofMainクラスの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 に答える