안녕하세요 하나 이상의 Activity.Can에 대해 단일 처리기 만 사용하고 싶습니다.둘 이상의 활동에 대해 하나의 UI 처리기를 사용할 수 있습니까?
답변
는 옥타비아누스의 대답 비트를 추가하려면 것
public class ExternalClickListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// Do whatever you want.
}
}
지금 당신이 Button
에 그것을 설정하려는 경우, 당신은 실제로 하나의 핸들러 클래스하지만 활동 당 하나 개의 인스턴스가됩니다. 예를 들어
: 활동에서 그런
public class MyHandler extends Handler {
// Keep a weak reference to the activity owning the handler
private WeakReference<Activity> activityRef;
public MyHandler(Activity a) {
this.activityRef = new WeakReference<Activity>(a);
}
public void handleMessage(Message msg) {
// do your stuff here, for instance, finish the activity
if (activityRef.get()!=null) {
activityRef.get().finish();
}
}
}
가 :
public class MyActivity extends Activity {
protected MyHandler handler;
public void onCreate() {
// This is where you'll re-use the handler code
handler = new MyHandler(this);
}
}
재미 있습니다. 저는 Handler에게 Listener를 생각했습니다. 이제 앉아서 생각할 때 실제로 Handler 클래스가 있다는 것을 알게되었습니다. : D –
이유는 동일합니다. 변경 될 확장 클래스 또는 구현 된 인터페이스 일뿐입니다. –
당신이 제공 한 답변에 대해 Marvin과 Octavian에게 감사드립니다. 이제는 하나의 활동이 마스터이고 다른 하나가 슬레이브 활동 인 것과 같은 조각 유형을 통해이를 원합니다. – Mak
이 핸들러를 static
으로 선언하고 액세스하십시오 : MyClass.myHandler
.
그것은 최선의 방법은 아닙니다. –
이것이 최선의 방법이 아닌 이유. 왜 핸들러가 정적 일 수 없습니까? – senzacionale
물론. 원하는 인터페이스를 구현하는 새 클래스를 만들고 필요한 경우 인스턴스를 만듭니다.
예를 들어 OnClickListener
을 사용하십시오. 클래스 ExternalClickListener
을 만듭니다. 이
btn.setOnClickListener(new ExternalClickListener());
당신이 제공 한 답변에 대해 Octavian과 Marvin에게 감사드립니다. 이제는 하나의 활동이 마스터이고 다른 하나가 슬레이브 활동 인 것과 같은 조각 유형을 통해이를 원합니다. – Mak
- 1. Git Submodules : 각각에 대해 둘 이상의 URL을 사용할 수 있습니까?
- 2. Android 프로그래밍에서 활동에 대해 둘 이상의 BroadcastReceiver를 등록 할 수 있습니까?
- 3. asp.net 동적 데이터를 둘 이상의 데이터베이스에서 사용할 수 있습니까?
- 4. Java에서 동일한 클래스에 대해 둘 이상의 파일을 가질 수 있습니까?
- 5. 하나의 Set-Cookie로 둘 이상의 쿠키를 설정할 수 있습니까?
- 6. 둘 이상의 앱을 하나의 전체 앱으로 결합 할 수 있습니까?
- 7. iPhone의 하나의 응용 프로그램에 둘 이상의 NavigationController가 있습니까?
- 8. 둘 이상의 공백을 하나의 세미콜론으로 변경하십시오.
- 9. XA가 아닌 트랜잭션에서 둘 이상의 지속성 단위를 사용할 수 있습니까?
- 10. 둘 이상의 인수를 허용하는 BackgroundWorker 대신 사용할 수 있습니까?
- 11. 동일한 NSString에 둘 이상의 NSCharacterSet 객체를 사용할 수 있습니까?
- 12. 리소스 레이아웃 파일에서 둘 이상의 목록보기를 사용할 수 있습니까?
- 13. 둘 이상의 키 경로를 결합하는 바인딩을 사용할 수 있습니까?
- 14. BestPractices : MVC 컨트롤러에서 둘 이상의 저장소를 사용할 수 있습니까?
- 15. android에서 동일한 Activity에서 둘 이상의 SurfaceView를 사용할 수 있습니까?
- 16. Qt의 표 머리글에 둘 이상의 줄을 사용할 수 있습니까?
- 17. 쿼리가 테이블에 대해 둘 이상의 비 클러스터형 인덱스를 사용할 수 있습니까?
- 18. 하나의 insert 문으로 둘 이상의 레코드 삽입하기
- 19. NHibernate - 둘 이상의 필드에 하나의 속성 매핑?
- 20. 둘 이상의 숫자를 하나의 바이트로 압축하기
- 21. 스레드가 둘 이상의 인수를 가질 수 있습니까?
- 22. UIViewController에 둘 이상의 UIView가 포함될 수 있습니까?
- 23. 둘 이상의 AWT 이벤트 큐가있을 수 있습니까?
- 24. 둘 이상의 정규식에 대해 어떻게 유효성을 검사합니까?
- 25. 하나의 양식에 대해 하나의 "제출"만 있습니다. 확인란 집합에 둘 이상의 작업을 배치하는 방법은 무엇입니까?
- 26. 심포니에서 동일한 모델 클래스에 대해 둘 이상의 양식을 사용할 수 있습니까?
- 27. 두 개의 다른 컨텍스트에 대해 하나의 트랜잭션을 사용할 수 있습니까?
- 28. nl2br 둘 이상의 개행
- 29. 프로세스에 둘 이상의 COMCTL32.dll을로드 할 수 있습니까?
- 30. iOS에서 스레드 당 둘 이상의 runloop을 가질 수 있습니까?
정확히 무엇을 의미 했습니까? 'Handler' 또는'Listener'? –