일부 시각적 조각을 구현하는 클래스가 있습니다. (나는 ApetWidgets이라고 부른다.) 그들은 그들 자신의 클래스 계층 구조를 가지고있다.활동 시작 및 활동이없는 descendent 클래스의 결과 캡처
public class SignatureApetWidget extends AbstractApetWidget {
private void startCapture(ApetActivity act) {
Intent intent = new Intent(act, SignatureCaptureActivity.class);
intent.putExtra(...);
act.startActivityForResult(intent, CAPTURE_SIGNATURE_REQUEST);
}
그 중 하나는 다른 활동을 시작하고 결과를 기다려야합니다. 그러나 위젯을 포함하는 액티비티에 대한 참조가 있지만 parentActivity의 startActivityForResult를 호출 할 수는 있지만 부모 액티비티로 이동하기 때문에 결과를 가로 채지 못했습니다.
결과를 캐치하여 위젯에 다시 위임 할 수는 있지만, 위젯의 특정 로직을 위젯에서 활동으로 옮겨야하기 때문에 좋지 않은 것처럼 보입니다. 위젯을 사용할 계획 인 모든 활동 클래스에서이 위임을 구현해야합니다.
다른 활동을 시작하는 방법을 아는 방법은 적어도 (적어도 내가 아는 방법). (그것은 잘 작동합니다.) 그러나, 나는 그것에 대한 결과가 없습니다. 활동 또는 다른 클래스에서 확장 및 상속하는 것은 선택 사항이 아닙니다 (내 위젯은 고유 한 클래스 계층 구조를가집니다).
내 질문은 : 어떻게 캡슐화 절을 잘못 추측하지 않고 비 활동 클래스 내에서 결과에 대한 활동을 시작할 수 있습니까?
덕분에, Balage
답변 주셔서 감사합니다. 조각은 완벽한 도구가 될 수 있지만 사용하지 못했습니다. API 레벨 7 기준에 부합해야하며 수준 11에 도입되었습니다. 다른 이유는 개인적입니다. 현재 많은 개발 단계에서 조각으로 이동하는 리팩토링이 필요합니다.) 그러나이 새로운 기능을 지적 해 주신 데 대해 감사드립니다. – Balage1551
사실이 아닙니다. Android SDK 다운로드의 일부로 호환 라이브러리가 있습니다. 이렇게하면 1.6으로 돌아가서 지원할 수 있습니다. http://developer.android.com/sdk/compatibility-library.html이 항아리를 포함시킴으로써 Fragment API를 사용할 수 있으며 사용하고 작동합니다. 큰. 또한 이것 : http://android-developers.blogspot.com/2011/03/fragments-for-all.html – sgarman