2012-07-28 3 views
0

좋은 날, 나는 해당 단편 A, BC과 함께 세 가지 활동을 수행합니다. 조각 A은 정적 조각이며 다른 조각은 동적입니다.여러 단편 및 활동 상호 작용 설계

액티비티 A은 조각 에 대한 청취자를 이미 구현하고 있습니다. 단편 B을 가로 방향으로로드하거나 단일 창에서 새 화면으로 이동하는 데 사용됩니다. 특정 버튼을 조각 C를 호출 단편 B에 눌렀을 때

은 내가 원하는, 내가 그것을 가로 방향 (단편 A 여전히 존재합니다)에 조각 C로 대체 또는에서 새 화면을 표시 할 할 것입니다 단일 창 모드. 나는이에 눈살을 찌푸렸다 때문에 단편 통신에 조각을 피하기 위해 노력하고

if (getResources().getConfiguration().orientation == 
      Configuration.ORIENTATION_LANDSCAPE) { 
     finish(); 
     return; 
    } 

: 나는 활동 B onCreate 방법이 간단한 코드가 있습니다. 그렇기 때문에 액티비티 AB 모두에서 조각 B에 대한 리스너를 구현해야한다는 것을 의미합니까? 가로 방향 액티비티 A에서 조각 C이로드되고 세로로 B이 넘는 것을 추측하고 있습니까? 더 좋은 방법이 있습니까? 나는 액티비티 B에 리스너를 구현하고 가로 방향으로 움직일 때 A 액티비티로 전달할 것을 생각했지만, 위의 코드로 인해 전달되기 전에 끝났을 것이라고 생각합니다. 이견있는 사람?

+0

누구나 아이디어가 있으십니까? .. 제발 당신이 이해할 수 있도록 분명히하기를 바랍니다. 감사합니다. – irobotxxx

답변

1

... 그래서 내가 가로 방향으로 활동 A가 조각 C와 세로를로드 할 때, B가 점거 추측하고, 활동 A와 B 모두에서 조각 B에 대한 리스너를 구현 의미 하는가 또는 더 좋은 방법이 있습니까? 나는 액티비티 B에서 청취자를 구현하고 가로 방향으로 작업 할 때 액티비티 A를 전달하는 것으로 생각했지만 위의 코드로 인해 패스해야하기 전에 이 완료되었을 것이라고 생각합니다. A 활동이 풍경에 조각 C을 보여줄 수 있어야하기 때문에

당신은 방금 B 활동에 리스너를 구현할 수 없습니다. 코드 중복에 대해 걱정하고 있다면 콜백을 구현하는 기본 활동을 구현하여 조각 C을 표시하고 두 가지 활동을 기본 클래스에서 확장 할 수 있습니다.

조각을 관리하는 방법에 대한 실제 코드를 게시하지 않았으므로 세로 방향 (B 액티비티에서 조각 B을 표시)에서 클릭 (또는 무엇을 하든지)하면 조각을 C으로 바꿉니다. 방향을 가로로 전환하면 활성 A으로 이동되지 않습니다.

+0

감사합니다. 두 가지 모두에서 리스너를 구현하는 것이 좋습니다. 나는 두 종목 모두 C를 불러오는 지 여부에 관계없이 세로 방향 이었는지 관심이있었습니다. 두 번째 점에 대해서는 실제로 그렇게 생각하지 않았습니다. 액티비티 A에서 액티비티 B가 오리엔테이션으로 전환 할 때 호출 할 수있는 정적 메서드를 만들 수 있습니다. 당신은 무엇을 제안하겠습니까? ... – irobotxxx

+0

(ActionBarSherlock을 사용하는 것을 제외하고는)이 조각들을 관리하는 코드는 안드로이드 개발자 자원과 다른 튜토리얼에서와 같이 다시 가져 오는 것이 필요하다고 생각하지 않았습니다.:) – irobotxxx

+0

@manuelJ 'A'활동에서 메소드를 호출하는 것은 액티비티 수명을 제어 할 수 없으므로 안드로이드에서 권장되는 접근 방법이 아닙니다 ('B'활동 중에는 파괴 될 수 있음). 나는 당신의 현재 상황에 어떻게 접근 할 것인지에 대한 간단한 예를 만들었습니다 (https://gist.github.com/3197234에서 찾으십시오). 이해하기를 바란다. (너무 효과적이지는 않지만 너무 많이 테스트하지는 않았다.) 두 개의 서로 다른 레이아웃과 하나의 액티비티로, 다시 버튼을 사용하여 조각으로 작업 할 수있다. – Luksprog