Как стать автором
Обновить

Комментарии 5

«Много еще можно говорить о фрагментах, хотя большая часть всего уже написана, я же хотел объединить все основные знания о фрагментах, чтобы человек, ничего не знающий о этом элементе, после прочтения стал свободно ими пользоваться. „
Человек, ничего не знающий о фрагментах, сразу же пойдёт читать оффициальную документацию(http://developer.android.com/guide/components/fragments.html).

Ну, или же найдёт информацию в русскоязычных блогах с первой страницы поисковой выдачи, к примеру тут(http://startandroid.ru/ru/uroki/vse-uroki-spiskom/176-urok-106-android-3-fragments-vzaimodejstvie-s-activity).
В параметре savedInstanceState onCreateView аргументы фрагмента не приходят. Здравствуй NPE при первом же запуске.
Аргументы запрашиваются вызовом getArguments(), который, кстати вместо пустой Bundle возвращает null в случае, если аргументы фрагменту не заданы.

Корректный код такой:
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.you_layout_for_fragment,  container, false);
        if(savedInstanceState != null) {
            setupViews(savedInstanceState);
        } else if(getArgs() != null) {
            setupViews(getArgs());
        } else {
            throw new InvalidArgumentException("args");
        }
        return view;
    }
Спасибо за замечание, исправил.
для android более правильно использовать Parcel для передачи параметров между активностями и фрагментами.

Использовать можно всё что угодно, допускается и Serializable и Parcelable, отличие лишь в том что Serializable — удобнее и проще писать, Parcelable — быстрее работает.
Для передачи небольших объектов, имхо, использовать Parcelable нет смысла.
Между serializable и parcelable существует много тонкостей, google дал удобный и быстрый инструмент и категорически не советует использовать Serializable, а пользоваться вы можете чем угодно,
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории