2013-12-14 2 views
1

Я использую вкладки панели действий с FragmentPagerAdapter. (3 вкладки) У меня есть onCreateOptions меню, установленное на MainActivity, которое расширяет FragmentActivity.Как вызвать макет фрагмента из FragmentActivity, чтобы избежать NullPointerException

Это меню содержит кнопку сохранения, которая запускает метод saveData() на MainActivity, который сохраняет данные во всех 3 фрагментах.

Проблема в том, что при первом открытии приложения и нажатии кнопки сохранения я получаю NPE, когда этот метод пытается сохранить данные на третьем фрагменте. Я знаю, что это потому, что метод onCreateView() еще не вызывается, и когда я переключаю вкладки, метод saveData() работает нормально.

Вопрос в том, как я могу избежать NPE? или как я могу назвать макет третьего фрагмента так, чтобы saveData() мог получить доступ к его представлениям.

+0

Отправьте свой существующий код здесь. – Piyush

ответ

0

Ну, самый простой способ - просто проверить ваши Fragments виды на null внутри вашего метода saveData(). Если необходимо сохранить данные из каждого фрагмента, вы можете использовать метод this на своем ViewPager, чтобы заставить его загружать все фрагменты одновременно.

+0

Решенный! setOffscreenPageLimit (int limit) Большое спасибо! –

+0

Я не могу проверить представления фрагментов для null, потому что есть некоторые переменные, которые установлены на ноль, если не загружен макет фрагмента. Это связано с тем, что я вызываю loadData(), когда инициируется onActivityCreated(). Любые другие подходы приветствуются! –

+0

Добро пожаловать. – Dmide