Android get возвращает 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)

Пожалуйста, предложите, есть ли другой подход к кэшированию тяжелого макета.

13
задан CRABOLO 22 March 2015 в 20:08
поделиться