2016-11-13 2 views
0

Здравствуйте, я Реализован деятельностью, где я использовал навигационную drawer.Its работает нормально, но иногда приложение происходит сбой из-за actionbar.it бросок NullPointerExceptionИзменить фрагмент в NavigationDrawer

я назвал фрагмент следующим

+0

размещать крушении в трассировке стека – marmor

+0

Извините, сэр я не имеет отчета о сбоях прямо сейчас. Потому что он бросает исключение в редком состоянии – John

+0

parent.getSupportActionBar(). setTitle (title); В этой строке я получаю исключение из null-указателя, когда вернусь из другой активности – John

ответ

0

Вы можете звоните getActivity от onCreateView, так как он может вернуть null, если Activity еще не подключен к Fragment.

Activities и Fragments имеют отдельные жизненные циклы, getActivity может быть пустым, пока ваш фрагмент находится в процессе подготовки.

Вы можете переместить код в зависимости от getActivity к обратному сообщению Fragment.onActivityCreated(Bundle). Обратите внимание, что он вызывается после onCreateView.

Смотреть подробнее здесь: https://developer.android.com/guide/components/fragments.html#CoordinatingWithActivity

UPDATE: В соответствии с просьбой, вот фиксированный код - я просто разделить некоторые из ваших onCreateView метода в onActivityCreated

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    person = new Person(); 
    str = person.getFragment(); 
    view = inflater.inflate(R.layout.fragment_product_list, container, false); 
    return view; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    cd = new ConnectionDetector(getActivity()); 
    parent = (AppCompatActivity) getActivity(); 
    if (getArguments() != null) { 
     title = getArguments().getString("Title"); 
     if (title != null) { 
      parent.getSupportActionBar().setTitle(title); 
     } 
    } 
} 
+0

сэр, не могли бы вы рассказать мне об изменениях в изменении названия фрагмента – John

+0

Я не получаю то, что вы сказали. Могли бы вы внести изменения в мой код? – John

+0

Я добавил код – marmor

Смежные вопросы