〰️
Programming with Java
  • Програмиране с JAVA
  • Обектно-ориентирано програмиране - 1 част
    • Лабораторно упражнение 1
      • Основи на програмирането с Java за начинаещи‎
        • Oбщи термини в Java
        • Основни характеристики на JAVA‎
        • Инсталиране на JDK
        • Инсталиране на Intellij
      • Първа програма в Java
      • Системен изход в JAVA
      • Дефиниране на променливи
      • Примитивни типове данни
      • Оператори
      • If-else
      • Switch-Case
      • For loop
      • While loop
      • Do-while loop
      • Continue
      • Break
      • Задачи
    • Лабораторно упражнение 2
      • Клас
      • Обект
      • Ключова дума new
      • Запазена дума static
      • Конвенции за именуване в Java
      • Wrapper Class
      • Сравняване на
      • Нуждата Wrapper Class
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 3
      • Наследяване
      • this и super
      • Модификатори за достъп
      • Капсулиране
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 4
      • Проследяване на грешки
      • Оценяване на изрази
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 5
      • Полиморфизъм
      • Абстрактен клас
      • Интерфейс
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 6
      • Разлика между Абстрактен клас и Интерфейс
        • Разлика 1
        • Разлика 2
        • Разлика 3
        • Разлика 4
        • Разлика 5
        • Разлика 6
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 7
      • String
      • Enum
      • Обработка на изключения
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 8
      • Генерични класове
      • Генеричен метод
      • Параметри на типа в Java Generics
      • Предимства на генериците
      • Генериците работят само с референтни типове
    • Лабораторно упражнение 9
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 10
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 11
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 12
      • Упражнения за извънаудиторна заетост
    • Лабораторно упражнение 13
      • Упражнения за извънаудиторна заетост
      • Упражнения за извънаудиторна заетост
  • Обектно-ориентирано програмиране - 2 част
    • Лабораторно упражнение 1
      • SRP - Single Responsibility Principle
        • Задачи
      • OCP - Open-Closed Principle
        • Задачи
    • Лабораторно упражнение 2
      • LSP - Liskov Substitution Principle
        • Задачи
      • ISP - Interface Segregation Principle
        • Задачи
      • DI - Dependency Inversion Principle
        • Задачи
    • Лабораторно упражнение 3
      • Singleton
        • Задачи
      • Builder
        • Задачи
    • Лабораторно упражнение 4
      • Factory Method
      • Abstract Factory
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Decorator
      • Bridge
        • Композиция
      • Задачи
    • Лабораторно упражнение 7
      • Adapter
      • Задачи
    • Лабораторно упражнение 8
      • Composite
      • Proxy
      • Задачи
    • Лабораторно упражнение 9
    • Лабораторно упражнение 10
      • Visitor
      • State
      • Задачи
    • Лабораторно упражнение 11
      • Observer
      • Задачи
    • Лабораторно упражнение 12
      • Chain of Responsibility
      • Command
      • Задачи
    • Лабораторно упражнение 13
  • Интернет технологии 2023
    • Лабораторно упражнение 1
      • HTTP протокол
        • Синтаксис на URL
        • HTTP съобщения
        • Методи за HTTP заявка
        • Кодове за състояние на HTTP отговор
      • Postman
        • Изпращане на заявка с Postman
        • Получаване на отговор
      • Задачи за работа с Postman
    • Лабораторно упражнение 2
      • Работа с Tomcat
      • Maven
      • Създаване на Maven проект в IntelliJ Ultimate Edition
      • Създаване на Maven проект в IntelliJ Community Edition
      • Създаване на Maven проект в Eclipse IDE
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи за създаване на сървлети
    • Лабораторно упражнение 4
      • Extensible Markup Language
      • Java Architecture for XML Binding
      • JavaScript Object Notation
      • Задачи
    • Лабораторно упражнение 5
    • Лабораторно упражнение 6
      • Spring Boot
      • Създаване на Spring boot проект
      • Структура на Spring Boot проект
        • Файлът pom.xml
        • Main клас в Spring Boot
        • Управление на конфигурацията с application.properties
      • Задача
    • Лабораторно упражнение 7
      • Комуникационен поток и CRUD операции
      • ResponseEntity
      • Избрани анотации
      • Задача
    • Лабораторно упражнение 8
      • Lombok
      • Data transfer object (DTO)
      • Обработване на изключения в Spring Boot приложение
        • Клас Optional<T>
      • Валидиране на данните от заявката
      • Задачи
    • Лабораторно упражнение 9-10
      • Конфигуриране на PostgreSQL DB
      • Jakarta Persistence анотации
      • Repository слой
      • Задачи
    • Лабораторно упражнение 11
      • Проследяване на сесии
      • Филтри и FilterChain
      • Spring Security
        • Добавяне на Spring Security в Spring Boot приложение
        • Конфигуриране на филтри
        • Удостоверяване със Spring Security
        • Защита на метод със Spring Security
      • Задача
    • Лабораторно упражнение 12
      • JSON Web Token
      • Защита с помощта на JWT
      • Задача
    • Лабораторно упражнение 13
  • Програмиране за мобилни и Интернет устройства
    • Лабораторно упражнение 1
      • Задачи
    • Лабораторно упражнение 2
      • Среда за разработване
        • Създаване на проект
        • Структора на проект
        • Виртуално устройство с Android OS
      • Задача
    • Лабораторно упражнение 3
      • Activity
      • Layout
        • XML описание
      • Задача
    • Лабораторно упражнение 4
      • Activity Lifecycle
      • Intent
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 5
      • Слушатели на събитията и методи за обратно извикване
      • Задача
    • Лабораторно упражнение 6
      • Фрагменти
      • DialogFragment
      • Задача
    • Лабораторно упражнение 7
      • Примери
        • BaseAdapter
        • ArrayAdapter
        • Custom ArrayAdapter
      • RecyclerView
        • Пример
      • CardView
      • Задача
    • Лабораторно упражнение 8
      • Runnable
      • HandlerThread
      • ThreadPoolExecutor
      • Задача
    • Лабораторно упражнение 9
      • Задача
      • Задача
      • Пример
  • Интернет Технологии
    • Лабораторно упражнение 1
      • Инсталиране и настройка на необходимата среда за работа в упражненията
      • Maven
      • Създаване на Maven проект в Eclipse IDE
      • Създаване на Maven проект в IntelliJ
      • Работа с Tomcat
      • Задача
    • Лабораторно упражнение 2
      • HTML форми
      • Cascading Style Sheets (CSS)
        • CSS селектори
        • Някои CSS свойства
      • Задача
    • Лабораторно упражнение 3
      • Java Servlets
      • Жизнен цикъл на сървлета
      • Създаване на сървлети
      • Задачи
    • Лабораторно упражнение 4
      • Java Server Pages технология. Същност и детайли
      • Пренасочване между Servlet и JSP
      • Задачи
    • Лабораторно упражение 5
      • Build pattern
      • JavaBean
      • Задачи
    • Лабораторно упражение 6
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Задачи
    • Лабораторно упражнение 7
      • Проследяване на сесии
      • Управление на бисквитки (Cookies)
      • Servlet Filter
      • Задачи
    • Лабораторно упражнение 8
      • Servlet Filter
      • Прихващане на грешки
      • Задачи
    • Лабораторно упражнение 9
      • Extensible Markup Language
      • JavaScript Object Notation
        • Fetch
      • Задача
    • Лабораторно упражнение 10
      • Java Architecture for XML Binding
      • Задачи
Powered by GitBook
On this page
  • Характеристики
  • Употреба на фрагменти:
  • Качество на кода
  • Използване
  • Дефиниране на фрагмент
  • Вграждане на фрагмент
  • Предаване на данни от Activity кум Fragment

Was this helpful?

  1. Програмиране за мобилни и Интернет устройства
  2. Лабораторно упражнение 6

Фрагменти

Fragment е част от Activity, коeто позволява по-модулен дизайн на дейностите. Fragment представлява поведение или част от потребителския интерфейс в даденo Activity. Можем да комбинираме множество фрагменти в едно Activity, за да изградим интерфейс с множество панели и да използваме отново фрагмент в много Activity-та. Жизненият цикъл на фрагмента е пряко засегнат от жизнения цикъл на родителското Activity.

Фрагмент обикновено определя част от потребителския интерфейс. Фрагментите трябва да бъдат вградени в Activity те не могат да работят независимо.

Характеристики

  • Фрагментите включват изгледи и логика, така че да е по-лесно да се използва повторно в Activity.

  • Фрагментите са самостоятелни компоненти, които могат да съдържат изгледи, събития и логика.

  • Приложенията, ориентирана към фрагменти, дейностите стават навигационни контейнери за навигацията към други дейности, представящи фрагменти и предаващи данни.

Употреба на фрагменти:

  • Повторното използване на "View" или "Логика" – Фрагментите позволяват повторното използване на части от екрана, включително изгледи и логика на събитията по различни начини в много различни дейности. Например, използването на един и същ списък в различни източници на данни в дадено приложение.

  • Tablet Support - Фрагментите позволяват специфични да се изграждат версии на телефон, която е различна от версията на таблета.

  • Ориентация на екрана - Често в рамките на приложения, портретната версия на дадена дейност има значително различно оформление от пейзажната версия. Фрагментите позволяват на двете ориентации да използват повторно споделени елементи, като същевременно имат различия.

Качество на кода

В рамките на приложение, което използва фрагменти широко, трябва да имаме предвид, че ролята на дадена Activity се променя.

Activity има навигационна отговорност:

  • Навигация към други Activity.

  • Представяне на навигационни компоненти като чекмеджето за навигация или на устройството за преглед.

  • Скриване и показване на съответните фрагменти с помощта на мениджъра на фрагменти.

  • Получаване на данни от Intent и предаване на данни между фрагменти.

Фрагментите са контролери на съдържание и съдържат повечето изгледи, оформления и логика:

  • Изгледи, показващи подходящо съдържание на приложението.

  • Логика за обработка на събития, свързана със съответните изгледи.

  • Преглед на логиката за управление на състоянието, като например видимост или обработка на грешки.

  • Задействане на мрежова заявка.

  • Извличане и съхранение на данни.

Използване

Дефиниране на фрагмент

Fragment, подобно на Activity, има XML файл за оформление и Java клас, който служи за контрол на фрагмент.

layout->New->Fragment

Класа на fragmenta наследява базовия клас Fragment и овърайдва методите:

  • onCreateView - дефинира изгледа на фрагмента

  • onViewCreated - зарежда визуалните елементи от изгледа в Java обекти

Вграждане на фрагмент

Добавяне на фрагмента динамично в Java става с помощта на класът FragmentTransaction. Класа позволява да се добавят, премахват и заместват фрагменти в оформлението на Activity по време на работа.

В този случай искате да добавите контейнер контейнер "контейнер" (обикновено a ) към вашата дейност, където фрагментът се вмъква по време на изпълнение:FrameLayout

  • в activity_main.xml се добавя FrameLayout

  • в MainActivity.java се добавя:

// Създаване на FragmentTransaction FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); // Запълване на съдържанието на FrameLayout с новия фрагмент ft.replace(R.id.your_placeholder, new FooFragment()); // or ft.add(R.id.your_placeholder, new FooFragment()); // Потвърждаване на замяната ft.commit();

Предаване на данни от Activity кум Fragment

За да се усигори съвместимост между ключовете на данните, който се изпращат от Activity кум Fragment е препоръчително да се създаде клас за създаване на фрагменти с данни

Пример:

    //предаване на данните
    public static CustomFragment newInstance(String name) {
        CustomFragment customFragment = new DemoFragment();
        Bundle args = new Bundle();
        args.putString("user_name", name);
        customFragment.setArguments(args);
        return customFragment;
    }
    //приемане на данните
    String name = getArguments().getString("user_name", "");	
PreviousЛабораторно упражнение 6NextDialogFragment

Last updated 4 years ago

Was this helpful?