자습서를 성공적으로 구현했습니다 : http://developer.android.com/reference/android/support/v4/view/ViewPager.html, 각 탭의 조각이 포함 된 Tab'ed viewpager 활동. 각 단편은 다양한 UI TextField 등을 유지하며 모든 단편에서 호출 될 때 null을 반환하는 getActivity()를 제외하고는 모든 것이 잘 작동합니다."ActionBarTabsPager"자습서에서 getActivity가 null을 반환합니다.
업데이트 : 다음 내용을 읽고이 오류의 원인과 관련된 범위를 넓히는 아래 내 답변을 참조하십시오. 계속 :
그러나 잠시 후 null 상태가 나타납니다. 처음에는 fragment.onStart()에서 getActivity()가 작동하여 기본 UI 설정을 수행 할 수 있습니다. 그러나 처음 사용자가 변경 한 경우 getActivity()는 이미 null을 반환합니다.
이상한 말처럼, 액티비티에서 조각 UI 필드를 변경하는 것은 여전히 가능합니다. 즉, context = activity가 setSomeText (this,. ..), 이것은 조각이 해당 변경을 할 수있게합니다. 물론 디자인은 조각이 자신의 상세한 작업을 처리하도록해야합니다.
onStart()에서 컨텍스트를 저장하는 것이 도움이되지 않습니다. 그 참조는 잠시 후에 null을 가리킬 것이기 때문입니다.
이 튜토리얼에서는이 기능이 초기 개발 단계에 있음을 명시 적으로 언급했지만 "null"문제는 여기에 매우 시시각각 변하기 때문에 "getActivity가 null을 반환한다"는 것이 매우 일반적인 문제인 것을 알 수 있습니다. ViewPager 및/또는 Tab과 결합 할 때 getActivity()에 버그가있을 수 있는지 여부를 소리내어보고 싶습니까?
문제를 탐지하는 데 오랜 시간이 걸렸던 이유는 조각이 그 활동에 대한 지식을 잃어 버렸다는 것을 추측하기 어렵다는 것이 었습니다. 어쨌든, 나는 다음 장애물에 서서 getActivity()를 신뢰하지 않고 Get/Set 메서드 또는 다른 API의 매개 변수로 Activity에서 해당 Fragment로 컨텍스트를 전달합니다.
조각을 정확하게 처리해야합니다. 설명서가 오래되었고 초기 개발 단계 * (몇 년간 사용 후) 인 * 클래스와 관련하여 업데이트되지 않은 것 같습니다. 프래그먼트의'getActivity()'가 null을 반환하는 특정 시나리오가있는 경우 문제에 대한 코드 구현을 추가해야합니다. – Luksprog