2012-09-10 1 views
0

결과에 대한 활동 시작 논리를 캡슐화하는 복합 구성 요소를 만들 수 있습니까?은 복합 컴포넌트가 결과에 대한 활동을 시작할 수 있습니까?

예를 들어 사용자가 오디오 파일, 이미지 파일 및 일부 연락처를 선택할 수있는 기능으로 일부 설정 페이지 (활동)를 만들고 싶습니다. 왜 각 아이디어를 독립적으로 일을 수행 할 별도의 복합 구성 요소로 요약 할 수 없습니까? 예를 들어 피킹 오디오 예제는 사용자의 오디오 선택을 얻기위한 암시적인 의도를 실행할 수 있습니다. 그러면 choise가 만들어지면이 compund 구성 요소에 포함 된 TextView에 결과를 표시하고 사용자가 볼륨 및 재료를 조정하도록 할 수 있습니다.

왜 Google은 내 유스 케이스에서이 논리를 하나의 활동 클래스에 모두 구현해야한다고 생각합니까? (또는 내가 원하지 않는 그 용도에 대한 각각의 활동을 가지고있다).

답변

1

모든 활동을 단일 활동 클래스에 구현할 필요는 없습니다. 가장 쉬운 방법은이 요소를 지원하려는 활동이 구현해야하는 인터페이스를 만드는 것이라고 생각합니다. 이 구성 요소를 만들 때이 인터페이스에 대한 참조를 제공합니다.

그런 다음 오디오 파일 선택기 활동의 결과가 준비되면 (onActivityResult() 이후) 구성 요소에 알릴 콜백 메커니즘을 사용할 수 있습니다. 쉽지는 않지만 구성 요소를 특정 활동에서 분리 할 수 ​​있습니다.

+0

오, 그건 실제로 좋은 생각입니다. 비록 내 의견으로는 여전히 구글이 만든 나쁜 디자인 결정에 대한 해결 방법입니다. –

+0

글쎄, 나는 모든 사람들을 행복하게 만들 수 없다고 생각합니다. :) 확실히 간단하지는 않지만 다시 한번 가장 일반적인 유스 케이스라고 생각하지 않습니다. 재사용을 보장하기 위해 많은 사람들이 길을 나서지 않습니다. – dmon

+0

또한이 방법을 사용할 수있는 대체 방법을 찾았 으면 언제든지 공유하십시오 :) – dmon

관련 문제