Комментарии 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).
Человек, ничего не знающий о фрагментах, сразу же пойдёт читать оффициальную документацию(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 в случае, если аргументы фрагменту не заданы.
Корректный код такой:
Аргументы запрашиваются вызовом 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 нет смысла.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Немного о Fragment