2013-03-01 3 views
0

Android에서 앱을 개발 중입니다. AugmentedView라는 클래스가 하나 있는데, 을 확장하면 마커를 그릴 책임이 있습니다. onDraw 메서드에서 충돌을 감지하면 주 클래스 인 부모 클래스에 알리고 화면의 단추 하나를 활성화하는 기본 GUI가 포함됩니다.
Java 객체 알림 부모 클래스

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

이 어떻게 변경에 대한 기본 클래스를 통지하고 그것에 마커의 목록을 전달할 수 있습니다 : 나는 다음과 같은 코드를 메인 클래스의에서 onCreate에서 AugmentedView 클래스를 호출?

+0

super.yourMethod 활동에서 (인수를 ...)? – CsBalazsHungary

+0

'draw()'메서드가 충돌 탐지에 적합한 장소라고 생각합니까? 차라리 상태를 업데이트하는'update()'메소드에 넣을 것입니다. – gaborsch

+0

죄송합니다 CsBalazsHungary 당신이 더 구체적 수 있습니까? – user2065529

답변

0

나는 당신의 문제를 이해하고있어 경우 올바르게, 당신은 당신의 AugmentedView 들어있는 활동/조각에게 통지합니다.

간단한 방법은 자바 콜백을 사용하는 것입니다.

//

//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(); 
    } 

    } 
+0

어쩌면 당신의 해결책은 내가 찾고있는 것이 었습니다. 내가 알기로 이것은 쓰래드가 기다리는 것과 작동하는 방식과 비슷하다. 나는 이것을 시험 할 것이고 나는 너의 대답을 받아 들일 것이다. – user2065529