2013-03-07 4 views
3

우선, 나는 액션 바 + 탭으로 활동을 생성하기 위해 this tutorial을 따라 갔다. 이 구현이하는 일은 main_activity 레이아웃에 fragment_container (선형 레이아웃 만)가 있고 어떤 탭이 선택되었는지에 따라 조각으로 바꿉니다.조각의 ID를 얻는 방법은 무엇입니까?

이제는 fragment-to-activity communication을 추가하려고하는데 nullpointerexemption이 표시됩니다.

com.mypackage.MAPFragment map_ = 
(com.mypackage.MAPFragment) getFragmentManager().findFragmentById(R.id.map); 
map_.ActivityToMapMethod(); 

MapFragment가 조각이 지도의와지도보기와 ID를 가지고있는 XML 레이아웃을 팽창 :

여기 내 코드입니다. 나는 지도가 내가 사용하기로되어 있다고 생각하는지 잘 모르겠습니다. 이전에 다른 응용 프로그램에서이 작업을 성공적으로 수행했지만, replace()를 사용하지 않고 XML을 통해 조각을 추가했습니다.

+0

지원 패키지 조각을 사용하고 있습니까? – Pragnani

+0

Nope. API 레벨 11 이상을 개발 중입니다. – user1923613

답변

4

사실 findFragmentById() 메서드는 Theres가 내부에있는 Fragment 인 경우 컨테이너에서 Fragment id를 가져옵니다. 그렇지 않으면 null이 반환됩니다. findFragmentById (R.id.fragment_container)는 자습서의 LinearLayout 안에 tHe Fragment를 반환합니다.

this.getId(); 

그것은 나를 위해 일한 내가 당신을 위해 밖으로 작동 희망 :

+0

다음과 같이 해결했습니다. 'MyMapFragment = new MAPFragment(); ((com.mypackage.MAPFragment) MyMapFragment) .ActivityToMapMethod();'. 귀하의 회신은 중요한 정보를 제공하여 답변으로 선택합니다. 감사. – user1923613

+0

@ user1923613, 나는 당신의 프래그먼트의 새로운 인스턴스를 생성하는 것이 좋은 방법이라고 생각하지 않습니다. – eRaisedToX

0

당신은 시도해야합니다. 도움이 되었기를 바랍니다. 행운을 빕니다!

관련 문제