2012-07-03 3 views
9

나는 윈도우 모바일에서 안드로이드로 애플리케이션 포팅 작업을하고 있으며 약간의 문제가있다. 기존 응용 프로그램은 MVP 패턴을 사용하고 포트에서 재사용 할 수있는 별개의 "발표자"클래스를 가지고 있습니다 (상당히 광범위한 응용 프로그램이며 재 작성 만 가능하지 않으며 C# 코드는 모두 Android 용 mono를 사용하여 다시 사용됩니다).). 이것들은 인터페이스를 구현 한 견해를 취하는데, 안드로이드에서는 적절한 인터페이스를 구현하고 발표자를 인스턴스화하며 스스로를 인수로 전달하는 액티비티를 생성하여 구현했습니다. 이 모든 것이 우리의 목적을 위해 잘 작동하는 것처럼 보이거나 아이스크림 샌드위치가 나올 때까지 나왔고 조각을 사용하여 구현하려고했습니다.조각 탭으로 안드로이드에 모델보기 프리젠터 패턴 적용

꽤 많은 액티비티가 탭을 사용하며, 액션 바 및 다른 새로운 기능을 사용하기 위해 탭 액티비티를 뷰 페이지와 함께 탭 조각으로 변환하려고하는데, 이것은 내가 부딪히는 곳입니다 몇 가지 문제. 각 탭을 조각으로 구현하는 것을 읽은 것에서는 선호되는 방법 인 것처럼 보이지만 발표자가 활동을 통해 조각과 통신 할 수있는 방법을 정확히 혼란스럽게합니다. 현재 발표자는 액티비티의 인터페이스 메소드를 호출하여 필요에 따라 값을 가져오고 설정하기 위해 스피너, 텍스트 뷰 등에 직접 액세스합니다. 이러한 각 UI 요소가 활동에서 선언 될 때마다 이것은 사소한 것입니다. 그러나 이러한 모든 UI 요소를 조각으로 이동하더라도 각 활동과 조각 사이에 완전히 새로운 인터페이스 집합을 구현하지 않고도 액세스 할 수있는 것 같지 않습니다. 나는 파편에있는 요소들에 대한 참조를 생성하려고 시도했다. (조각 뿌리 뷰를 얻은 다음 그 안에서 원하는 뷰를 찾음으로써) 뷰 파인더가 항상 프래그먼트를로드하지는 않는다. 심지어로드 된 경우에도 활동이 실행 중 상태가 될 때까지 레이아웃이 비정상적으로 증가하지 않으므로 항상 null 값이 반환됩니다.

이상한 질문이 있습니다.하지만 발표자 클래스가 이제 별도의 조각 탭에 저장된 UI 요소와 상호 작용할 수 있도록하려면 어떻게해야합니까? 나는 완전히 틀린 길로 가야만하는 것처럼 느껴진다. 그러나 나는 그것이 어떻게 이루어져야 하는지를 볼 수 없다. 그래서 누군가가 내가 그것에 대해 갈 수있는 방법에 대해 충고를 해줄 수 있다면 그렇게 될 것이다.

+0

RecyclerView 및 ViewPager에서 사용자 정의 항목으로 MVP를 사용하면 같은 딜레마가 발생하므로 @ss에서 –

답변

1

FragmentAcivity의 모든 Fragment에 대해 하나의 발표자를 만든 다음이 단일 발표자가 각 Fragment (Tab이라고도 함)에 대한 인터페이스를 구현하는 방법은 어떻습니까? 그런 다음 발표자가 모든 단편에 대한 참조를 가질 FragmentActivity 인스턴스에서이 발표자를 인스턴스화합니다.