안드로이드 앱 (또는 Java가 더 일반적이지 않은 경우 더 일반적으로)에서 변수 값이 변경 될 때마다 메소드를 호출하는 가장 좋은 방법은 무엇입니까?Android에서 변수가 변경 될 때마다 조치를 취하는 방법은 무엇입니까?
답변
은 당신이 정말 이벤트가 발생할 때 리스너를 트리거하는 이벤트 구동 모델을 설정하고 싶은 (귀하의 경우, 변수 값이 변경되었습니다 말 : 당신은 귀하의 요구 사항에 따라 코드에 넣을 수 있습니다).
: 일반적으로이 다음 단계를 수행하여 완료(그것은 단지 그것을 위해 반드시 아니지만) 특히 UI 프로그래밍의 맥락에서뿐만 아니라 자바에 대한,하지만 다른 프로그래밍 언어에 대한뿐만 아니라 매우 일반적입니다
- 이벤트가 트리거 될 경우 리스너가 구현해야하는 인터페이스를 결정하십시오. 당신은 청취자가 여기에 처리하는 것이 중요하다고 생각되는 인자를 넣을 수
public interface VariableChangeListener {
public void onVariableChanged(Object... variableThatHasChanged);
}
: 귀하의 경우를 들어, 당신은 그것을 VariableChangeListener를 호출 할 수와 같은 인터페이스를 정의합니다. 인터페이스로 추상화함으로써 변수가 이벤트가 발생하는 클래스와 긴밀하게 결합하지 않고 변경된 경우 필요한 조치를 구현할 수 있습니다.
- 이벤트가 발생한 클래스 (다시, 귀하의 경우 변수가 변경 될 수있는 클래스)에서 이벤트에 대한 수신기를 등록하는 메소드를 추가하십시오. 당신이 당신의 인터페이스 VariableChangeListener를 호출 할 경우에 당신은 기본적으로 같은
// while I only provide an example with one listener in this method, in many cases
// you could have a List of Listeners which get triggered in order as the event
// occurres
public void setVariableChangeListener(VariableChangeListener variableChangeListener) {
this.variableChangeListener = variableChangeListener;
}
이 아무도 (변수가 변경) 발생한 이벤트의 경우, 이벤트
- 을 듣고되지 않는 방법이있을 것이다 당신은 t 코드가 다시
if(variableValue != previousValue && this.variableChangeListener != null) {
// call the listener here, note that we don't want to a strong coupling
// between the listener and where the event is occurring. With this pattern
// the code has the flexibility of assigning the listener
this.variableChangeListener.onVariableChanged(variableValue);
}
같은 것을 같을 것이다, 리스너를 트리거합니다 그는 기본적으로 이벤트 또는 변수 변경에 반응하는 프로그래밍의 매우 일반적인 관행입니다. Javascript에서는 onclick()의 일부로, 안드로이드에서는 OnClickListener이 Button onclick 이벤트로 설정된 것과 같이 다양한 청취자에 대한 이벤트 기반 모델을 확인할 수 있습니다. 귀하의 경우에는 변수가 변경 될 때마다 다른 이벤트를 기반으로 청취자가 트리거됩니다.
I * think * 당신이 마침내이 설명과 함께 청취자에게 나를 위해 떨어질 페니를 도왔을 수도 있습니다. 이 페이지는 북마크되고 있습니다 !!! –
'setVariableChangeListener' 메소드를 호출해야 할 때 누군가 설명 할 수 있습니까? 'VariableChangeListener'가 인터페이스이기 때문에 정확히'setVariableChangeListener'에 무엇이 전달됩니까? – AvP
당신은 정확히 원하는 것을 정의하지 않았으므로 다음과 같이 만들 수 있습니다. 작동 할 수도 있습니다. 변수 이름이 v라고 가정하십시오. 하나의 변수 previous_v를 만듭니다. 이전 버전 만들기 = v; .
if(v!=previous_v){
//your stuffs
}
이것은 한번 확인한 후 다시 확인하지 않기 때문에 단지 작동하지 않습니다. 작성자는 변수가 언제 변경되는지를 알고 싶어합니다. while 루프는 검사를 계속합니다. –
- 1. 변수가 변경 될 때마다 JavaScript에서 함수를 실행하는 방법은 무엇입니까?
- 2. 한 지점에서 다른 지점으로 조치를 취하는 방법은 무엇입니까?
- 3. NSManagedObject가 변경 될 때마다 수정 날짜를 설정하는 방법은 무엇입니까?
- 4. jquery 탭이 변경 될 때마다 변경됩니까?
- 5. select가 변경 될 때마다 jQuery 동작이 발생합니다.
- 6. 변수가 변경 될 때 패널 집합 업데이트
- 7. 부모 함수가 호출 될 때마다 C의 정적 변수가 다시 할당됩니까?
- 8. Android에서 앱을 실행할 때마다 사용자의 선택을 저장하는 방법은 무엇입니까?
- 9. TextBox의 특정 키 입력에 대해 조치를 취하는 방법?
- 10. Android에서 타워 변경 사항을 감지하는 방법은 무엇입니까?
- 11. 값이 업데이트 될 때마다 WPF TextBlock을 회전시키는 방법은 무엇입니까?
- 12. 대시 보드의 시계가 시스템 시간이 변경 될 때마다 변경됩니다.
- 13. 값이 변경 될 때마다 메소드를 자동으로 호출 할 수 있습니까?
- 14. 필드가 변경 될 때마다 JasperReports가 필드를 인쇄하도록하려면 어떻게해야합니까?
- 15. 스크립트가 변경 될 때마다 터미널에서 파이썬을 다시 시작해야합니다.
- 16. Grails가 매번 변경 될 때마다 프로젝트를 자동으로 재구성하지 않도록하는 방법은 무엇입니까?
- 17. 행이 변경 될 때마다 날짜를 사용하여 액세스 필드를 업데이트하는 방법은 무엇입니까?
- 18. div의 너비 또는 높이가 변경 될 때마다 Javascript 기능을 자동으로 실행하는 방법은 무엇입니까?
- 19. 값이 업데이트 될 때마다 맵을 표시합니다.
- 20. 변수의 값이 변경 될 때 이벤트를 트리거하는 방법은 무엇입니까?
- 21. OptionMenu 또는 Checkbutton이 변경 될 때를 감지하는 방법은 무엇입니까?
- 22. 인수를 취하는 bash 스크립트를 작성하는 방법은 무엇입니까?
- 23. Java : 세션에 넣을 때마다 기록하는 방법은 무엇입니까?
- 24. 변수가 변경 될 때 데이터를 출력하는 것에 대한 도움말
- 25. 입력 매개 변수가 변경 될 때만 함수를 호출하는 방법
- 26. Windows Mobile/C : 변수가 변경 될 때까지 대기
- 27. 세션 변수가 변경 될 때 알림을받는 방법이 있습니까?
- 28. 문자열 변수가 변경 될 때 이벤트가 실행되지 않음
- 29. IP 주소가 파이썬에서 변경 될 때이를 시각화하는 방법은 무엇입니까?
- 30. 비동기 적으로 사용자에게 조치를 수행하도록 요청하는 가장 좋은 방법은 무엇입니까?
변수를 변경하는 코드가 있어야합니다. 그 자체로 조치를 취하지 않으시겠습니까? –
변수가 변경 될 때 액세스해야하는 객체가 변수를 변경하는 코드의 범위에 있지 않기 때문입니다. – tsvallender