2017-01-31 9 views
3

번들 인 텐트를 통해 파셀러를 사용하여 모델 데이터를 다른 활동으로 전달하려고합니다. 내 문제는 어떻게 안드로이드에 MVP 아키텍처를 사용하여 다른 활동에 표시하려면보기 레이어에 발표자에서 데이터를 전달할 수 있습니까?MVP를 사용하여 안드로이드에 번들 인 텐트 전달

답변

9

확실히 가능합니다.

@Override 
void startNextActivity(MyData data) { 

    // create bundle 
    // send intent 
} 

그리고 발표자의 :

view().startNextActivity(myData); 

활동에서 그런

void startNextActivity(MyData data); 

: 당신의 활동이보기 인터페이스를 구현하는 것을 가정하면 당신은 같은 인터페이스하는 방법이있을 것이다 그러나 당신이 이것을하는 것을 추천하지 않습니다.

나는 상당수의 의견을 가지고 있습니다. classic MVP를 수행 할 때 안드로이드 패턴을 드물게 사용해야합니다. 여기에는 onActivityResult & 등의 데이터가 Bundle을 사용하여 액티비티/프래그먼트간에 전달됩니다.

가능한 한 정보를 분리하고 깨끗하게 유지 활동은 다른 활동과 대화를하지 말아야합니다. 발표자는 다른 발표자와 대화해서는 안됩니다. 다른 활동의 한 활동에서 데이터에 액세스해야한다면 모델로 보내십시오 지속될 수 있습니다. 다음 액티비티는 발표자가이 데이터를 전송하여 모델로부터 가져옵니다.

다음 그림은 더 나은 개요를 제공합니다 :

MVP Diagram

오히려 다음 활동이로드 될 때까지 그들이 모델에서 유지됩니다 다음 활동을 시작할 때 번들의 일부로 세부 사항을 전달하는 것보다.