활동에 작업 표시 줄을 사용하고 있습니다. 각 탭마다 다른 레이아웃을 보여주고 있습니다. 레이아웃이 너무 무거 우므로. 그래서 나는 각 레이아웃을보기로 팽창시키고있다. 그래서 각 탭에 그래서 지금은 탭을 두 번 선택하면android get activity returns null
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mView == null) {
mView = LayoutInflater.from(mAct).inflate(mLayout, null); // mAct is Activity reference
}
mAct.setContentView(mView);
for (int i = 0; i < mFrags.length; i++) {
mFrags[i] = (LutronFragment) mAct.getFragmentManager()
.findFragmentById(mIds[i]);
if (mFrags[i] != null) {
mFrags[i].setupHeader();
}
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
for (Fragment f : mFrags) {
try {
if (f != null) {
ft.remove(f);
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
}
을 선택하고 해당 탭에 대한 몇 가지 작업을 수행 응용 프로그램은 getActivity에 추락 얻을. (NullPointerException이) 몇 가지 다른 방법이있는 경우
제안하십시오 캐시 무거운 레이아웃.
당신은 'mAct'가 null이된다는 말을 듣고 있습니까? 또한 레이아웃을 캐싱 할 필요가 없습니다. 백그라운드에서 레이아웃로드가 발생하는 동안 포어 그라운드에는 진행 대화 상자 나 중간 사용자 상호 작용 가능 화면과 같은 사용자 인터페이스가 있어야합니다. 마지막으로, 레이아웃의 가중치를 줄이거 나 요청에 따라 요소를로드하는 것을 고려하십시오. 실제로 레이아웃이 무거운 지 확인하기 위해 레이아웃 xml을 게시 할 수 있습니까? – gaara87