2012-05-08 8 views
1

Android가 방향 변경시 조각 (특히 중첩 된 조각)을 처리하는 방법을 이해하는 데 문제가 있습니다.구성 (방향) 변경시 중첩 된 조각

f1이라는 단편을로드하는 a1 활동이 있습니다. f1 그러면 메서드에서 f2 조각의 여러 인스턴스가로드됩니다.

지금 내 활동 a1은 (oncreate())이 있습니다

if (savedInstanceState != null) 
    return; 

f1의 여러 인스턴스가로드되지 않는 것을 확인 할 수 있습니다. 나는 동일한 f1에서 f2 중복 인스턴스가로드되지 않도록해야합니다.

그러나 내 클래스 f1은 나중에 f2 인스턴스를 참조해야합니다. 현재 나는 ArrayList를 f1 객체에 저장하고 있습니다. 그러나 오리엔테이션을 변경 한 후에는이 ArrayList가 비어 있고 f2 인스턴스는 다른 객체가 될 것입니다.

그럼 내 질문은 중첩 된 조각을 가지고 방향을 변경 한 후 참조를 유지하는 가장 좋은 방법은 무엇입니까?

답변

1

FragmentManger를 사용하여 다른 조각에 대한 참조를 찾을 수 있습니다.

당신은 같은 일을하여 다른 단편에 대한 참조를 얻을 수 있습니다 :

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentById(R.id.details); 

또는 이미 this 블로그 게시물을 살펴 보지 않은 경우

DetailsFragment details = (DetailsFragment) getFragmentManager().findFragmentByTag("my tag"); 

.

동일한 단편의 인스턴스가 여러 개있는 경우 단편을 작성할 때 태그를 설정할 수 있으며 단편을 찾을 때 id 대신 사용할 수 있습니다.

관련 문제