2011-08-11 2 views
0

저는 android (and java)를 처음 사용하고 있으며 객체간에 통신하는 메커니즘이 무엇인지 궁금하네요? 비공개 멤버의 값을 모니터링하고 싶을 때처럼 변경되면 메소드가 트리거되기를 원합니다.사용자 정의 이벤트를 수신하는 방법은 무엇입니까? (또는 객체간에 통신하는 메커니즘은 무엇입니까?)

UI 이벤트의 경우 이벤트 수신기가 있습니다. 그러나 마우스 클릭이 아니라 개인 회원의 가치가 바뀌면 어떻게 될까요? 나는 의도/방송 수신자를 시도했지만, 내가하고 싶은 일이 아니라고 생각합니다.

정말 고마워요 !!

+1

을 변경 한 것을 Subscriber을 알리기 위해이 인터페이스의 SomeMethod 메서드를 호출 할 수 있습니다 자신의'interface' 다음 클래스에 우선합니다. –

+0

고맙습니다.하지만 좀 더 구체적으로 말씀해 주시겠습니까? 제발 .. – Rachel

+0

http://www.exampledepot.com/egs/java.util/custevent.html 이것을 확인하고 지갑을 청취자에게 수정하십시오 (일부 변수의 값 변경이라고 말한 것처럼) –

답변

0

게시자 구독자 기반 접근 방식을 사용할 수 있습니다. 비공개 (Publisher) 멤버가 포함 된 클래스는 해당 메소드 RegisterForChange을 가지므로 해당 인터페이스에 ISomeInterface 인터페이스를 사용하고 Subscribe 클래스는 해당 인터페이스를 구현했을 것입니다. 개인 회원에 변화가되면 당신은 내 개인 회원이 작성

//pseudocode 
    public interface ISomeInterface 
    { 
     SomeMethod(); 
    } 

    class Publisher 
    { 
     RegisterForChange(ISomeInterface inter) 
     { 
      inter.SomeMEthod(); 
     } 

     //whenever there is change call 
     inter.SomeMethod(); 
    } 

    class Subsscriber implements ISomeInterface 
    { 
     //inside this class register for change by calling 
     Publisher.RegsiterForChange(this); 

     // this method will be called whenever there is change in private member 
     public SomeMethod() 
     { 
     } 
    } 
+0

Java 표준 라이브러리가 내장되어 있습니다 in 기능을 사용하여 구독/게시 메커니즘을 처리합니다. 자세한 내용은 Java 클래스 Observable 및 Observer 인터페이스를 참조하십시오. –

+0

나는 자바가 처음이다. 감사합니다. –

관련 문제