Bundle android передача данных

Содержание
  1. Урок 25. Navigation. Передача данных. Type-safe аргументы.
  2. Аргументы в графе
  3. Type-safe
  4. Отправитель
  5. action
  6. Получатель
  7. Android Fragment Result Listener
  8. Как это работает?
  9. Как это выглядит в коде?
  10. Передача данных
  11. Получение данных
  12. Parent Fragment Manger
  13. Тестирование
  14. Передача данных
  15. Получение данных
  16. Вывод
  17. Урок 15. Передача данных между экранами — пунктами назначения. Android Navigation. Bundle vs Safe Args
  18. На этом уроке
  19. Передача данных между экранами
  20. Bundle или Safe Args?
  21. Создаем проект
  22. Создаем граф навигации
  23. Добавляем пункты назначения – фрагменты
  24. Передача данных с одного Activity на другое Activity
  25. Шаг 1
  26. Шаг 2
  27. Шаг 3
  28. Android Передача данных — фрагмент в активность, активность в фрагмент
  29. Пример 1: Передача данных в Android — фрагмент в активность через интент .
  30. Что такое фрагмент ?
  31. Зачем передавать данные из фрагмента в активность ?
  32. Введение
  33. Общие вопросы, на которые мы отвечаем
  34. Используемые инструменты
  35. 1. Build.gradle
  36. 2. MainActivity.java
  37. 3. MyFragment.java
  38. 4. Создание пользовательских интерфейсов
  39. (c). Макет MyFragment
  40. Как выполнить
  41. Результат
  42. Дополнительные ресурсы
  43. Пример 2: Передача данных Android — от Activity к Fragment через Bundle
  44. ШАГ 1: Создание проекта
  45. ШАГ 2 : Наш Build.gradle .
  46. ШАГ 3 : Наш Фрагмент
  47. ШАГ 4 : Наша MainActivity (Главная активность)
  48. ШАГ 5. Создание пользовательского интерфейса `Activity
  49. ШАГ 6: Наш фрагмент xml
  50. ШАГ 7 : Как выполнить
  51. Результат
  52. ШАГ 8: Подробнее
  53. Передача данных в Android: ListView to ListView
  54. Скрипты Gradle
  55. 1. Build.gradle
  56. LAYOUTS
  57. 1. activity_main.xml
  58. 2. content_main.xml
  59. 3. activity_second.xml
  60. КЛАССЫ JAVA
  61. Результат
  62. Download

Урок 25. Navigation. Передача данных. Type-safe аргументы.

В этом уроке рассмотрим как передавать данные при навигации.

Полный список уроков курса:

Чтобы при вызове destination передать данные, необходимо использовать Bundle. Для него оставили местечко в методе navigate

Создаем Bundle, наполняем аргументами и передаем в метод navigate вместе с ID destination (или action).

В фрагменте fragment2 метод getArguments вернет следующий Bundle:

Соответственно получить данные можно стандартным путем:

А если вызывали не фрагмент, а Activity, то так:

Аргументы в графе

В графе мы можем для destination добавить аргументы и прописать им значения по умолчанию.

Секция Arguments. Указываем имя аргумента, тип и значение по умолчанию. Тип может быть string, integer и reference.

Если тип reference, то мы можем указать идентификатор какого-либо ресурса. В данном примере я указал dimen и string ресурсы. Они имеют следующие значения.

Давайте проверим, как работают эти значения по умолчанию. Снова вызовем fragment2 и при этом не будем задавать никаких значений для аргументов, которые только что создали.

В результате getArguments в фрагменте выглядит так:

Для аргументов arg3, arg4 и arg5 пришли дефолтные значения. Причем reference идентификаторы были конвертированы в соответствующие им значения. arg4 надо получать, как Int, а arg5 — как String.

Значения по умолчанию будут приходить, если мы в коде не поместили в Bundle какое-либо свое значение аргумента.

Если для аргумента нет значения по умолчанию в графе и в коде ничего не было задано в Bundle, то в destination этот аргумент просто не придет.

Type-safe

Студия может сгенерировать нам классы и методы для удобной передачи аргументов. Для этого нам понадобится safeargs плагин.

В build.gradle файл проекта в секцию buildscript > dependencies необходимо добавить classpath

А в build.gradle модуля добавляем плагин safeargs

Для полноценного использования плагина необходимо использовать action.

Добавим action, который будет вести из fragment1 к fragment2 и укажем >

Обратите внимание, что action подтянул аргументы из destination в который он ведет, т.е. из fragment2. И мы можем указать для них значения по умолчанию.

Итак, у нас в графе есть три компонента, которые участвуют в навигации:
— destination, которому принадлежит (из которого выходит) action (ID = fragment1)
— action (ID = actionToFrgament2)
— destination, в который ведет action (ID = fragment2)

Для каждого из них будет сгенерирован свой класс. Если классы не генерируются, нажмите Ctrl+F9.

Отправитель

Для fragment1 будет сгенерирован класс Fragment1Directions. Т.е. в качестве имени взято ID и добавлено слово Directions. В этом классе будет метод actionToFragment2(), который даст нам action ActionToFragment2.

action

ActionToFragment2 — сгенерированный класс для action actionToFragment2. У этого класса есть методы, соответствующие аргументам этого action (см. скриншот выше). Т.е. для аргументов arg3, arg4 и arg5 будут созданы методы:

и мы сможем их использовать, чтобы задавать значения аргументов. Под капотом там все также используется Bundle.

Код навигации будет выглядеть так:

Получаем ActionToFragment2 из Fragment1Directions, задаем значения аргументов и передаем этот action в метод navigate.

Получатель

Для получателя будет сгенерирован класс Fragment2Args. Т.е. для имени используется ID destination + суффикс Args.

У этого класса будут созданы методы для извлечения данных из bundle.

Статический метод, для создания Fragment2Args с передачей ему bundle.

И методы получения значения аргументов.

Код извлечения аргументов будет выглядеть так:

А если получатель — Activity, то код такой:

Эти сгенерированные классы очень просты, вы всегда можете открыть их и посмотреть код. В целом они являются оберткой над Bundle.

Присоединяйтесь к нам в Telegram:

— в канале StartAndroid публикуются ссылки на новые статьи с сайта startandroid.ru и интересные материалы с хабра, medium.com и т.п.

— в чатах решаем возникающие вопросы и проблемы по различным темам: Android, Kotlin, RxJava, Dagger, Тестирование

— ну и если просто хочется поговорить с коллегами по разработке, то есть чат Флудильня

— новый чат Performance для обсуждения проблем производительности и для ваших пожеланий по содержанию курса по этой теме

Источник

Android Fragment Result Listener

В Android передача данных между фрагментами может осуществляться разными способами: передача через родительскую Activity, используя ViewModel или даже Fragments API. Fragment Target API с недавних пор получил статус Deprecated и вместо него Google рекомендует использовать Fragment result API.

Что такое Fragment result API? Это новый инструмент от Google который позволяет передавать данные между фрагментами по ключу. Для этого используется FragmentManager, который в свою очередь реализует интерфейс FragmentResultOwner. FragmentResultOwner выступает в качестве центрального хранилища для данных, которые мы передаем между фрагментами.

Читайте также:  Как убрать галочку только для чтения андроид

Как это работает?

Как упоминалось выше, наш FragmentManager реализует интерфейс FragmentResultOwner, который хранит в себе ConcurrentHashMap . Эта HashMap хранит наши Bundle-ы по строковому ключу. Как только один из фрагментов подписывается (или уже подписан) то он получает результат по тому самому ключу.

Что важно знать:

  • Если какой-либо фрагмент подписывается на результат методом setResultFragmentListener() после того, как отправляющий фрагмент вызовет setFragmentResult() , то он немедленно получит результат
  • Каждую связку “Key + Result (Bundle)“ фрагмент получает только 1 раз
  • Фрагменты которые находятся в бек стеке получат результат только после того как перейдут в состояние STARTED
  • После того как фрагмент перейдет в состояние DESTROYED мы больше не сможем подписываться на ResultListener

Как это выглядит в коде?

Передача данных

Для передачи данных в другой фрагмент нам необходимо вызвать метод:

В параметры метода мы кладем ключ, который и будет нашим идентификатором для получения данных и сам Bundle. Этот Bundle будет содержать в себе передаваемые данные.

Получение данных

Для получения данных через FragmentManager мы регистрируем наш FragmentResultListener и задаем ключ по которому мы будем получать данные. Тот самый ключ который мы указывали в методе FragmentManager.setFragmentResult()

Здесь мы видим 2 аргумента: key: String и bundle: Bundle.
Первый — это тот самый ключ, по которому мы передаем сюда данные. Второй — Bundle, в котором лежат переданные данные.

Parent Fragment Manger

Выбор FragmentManager-а для передачи данных между фрагментами зависит от принимающего фрагмента:

  • Если оба фрагмента находятся в одном и том же FragmentManager (например оба фрагмента находятся в Activity), то мы должны использовать родительский FragmentManager, который хранит в себе Activity
  • Если у нас один фрагмент вложен в другой фрагмент, то для передачи данных мы используем childFragmentManager (он же родительский фрагмент для принимающего фрагмента)

Важно понимать, что наш FragmentResultListener должен находиться в общем для двух фрагментов FragmentManager-е.

Тестирование

Для тестирования отправки/получения данных через FragmentResultListener, мы можем использовать FragmentScenario API, который предоставляет нам все преимущества тестирования фрагментов в изоляции.

Передача данных

Как мы можем протестировать, что наш фрагмент корректно отправляет данные через родительский FragmentManager? Для этого нам необходимо внутри теста отправить результат и проверить, что наш FragmentResultListener получил корректные данные:

Получение данных

Для проверки корректности получения данных мы можем симулировать отправку данных, используя родительский FragmentManager. Если в отправляющем фрагменте корректно установлен FragmentResultListener мы должны получить корректные данные проверяя сам листенер или последствие их получения.

Вывод

В данный момент FragmentResultListener находится в альфе, а это значит что возможно еще будут изменения со стороны Google. Но уже сейчас видно, что это достаточно крутой инструмент, для передачи данных между фрагментами, не создавая дополнительных интерфейсов и классов. Единственным нюансом остается, пожалуй то, что не совсем понятно, как и где лучше хранить ключи где, но это не кажется таким уж большим минусом.

Для того чтоб получить возможность использовать FragmentResultListener нам нужно подключить в зависимостях версию фрагментов 1.3.0-alpha04 или новее:

Источник

Урок 15. Передача данных между экранами — пунктами назначения. Android Navigation. Bundle vs Safe Args

Продолжаем серию уроков по разработке android-приложений в Android Studio на языке Kotlin.

На прошлом уроке мы выполняли навигацию по условию, авторизован пользователь или нет.

На этом уроке

На этом уроке рассмотрим возможности передачи данных между экранами – пунктами назначения навигации в андроид-приложении. Создадим приложение с двумя экранами. На первом экране будет поле для ввода имени и кнопка отправки, а на втором экране будет отображаться приветствие с именем, которое мы указали. Таким образом, мы передадим данные (имя) с первого экрана на второй.

Передача данных между экранами

В процессе работы приложения часто возникает необходимость передавать данные между экранами. В уроке №5 мы рассматривали возможность передачи данных между активити с помощью интента. Для передачи данных между фрагментами такой способ не подходит, поскольку часто фрагменты отображаются в одном и том же активити.

Bundle или Safe Args?

В этом уроке мы рассмотрим два способа передачи данных между фрагментами: традиционный – с помощью наборов данных Bundle и типобезопасный – при помощи безопасных аргументов SafeArgs. Первый способ относительно прост – создаем набор данных «ключ-значение» типа Bundle и передаем через action в первом фрагменте, и извлекаем во втором фрагменте.
Второй способ потребует немного больше кода. На первый взгляд он может показаться сложнее, поскольку используется кодогенерация – среда разработки создает необходимые классы вместо вас. Но мы попробуем разобраться и вы увидите, что ничего особо сложного там нет. По сути, SafeArgs – просто обертка над Bundle. Тем не менее, разработчики настоятельно рекомендуют применять именно SafeArgs, как типобезопасный способ передачи данных между фрагментами в процессе навигации.

Создаем проект

Откройте среду разработки Android Studio и создайте новый проект с использованием шаблона Empty Activity.

Создаем граф навигации

Далее перейдите в папку res и создайте в ней папку navigation. Внутри папки navigation создайте Navigation Resource File с именем nav_graph.xml и корневым элементом .

Если вы забыли добавить в проект необходимые для поддержки навигации библиотеки – Android Studio предложит это сделать за вас, показав предупреждение.

Добавляем пункты назначения – фрагменты

Добавьте новые пункты назначения. Для этого:

  1. В окне редактора дизайна нажмите кнопку «New destination»
  2. Выберите «Create new destination»
  3. Далее в окне добавления фрагмента выберите Fragment (Blank):

Источник

Передача данных с одного Activity на другое Activity

В этом уроке я бы хотел вам показать как передавать данные с одного Activity на другое Activity.

Шаг 1

Создаем в нашей Intellij IDEA -> Android Application.

Читайте также:  Восстановление андроида через рекавери

После создаем layout main.xml:

И так она будет выглядеть:

На этой Layout будут вводится данные и после нажатия на кнопку передаваться на другое окно.

И собственно создадим второй layout куда мы и будем передавать данные с формы.

Назовем её two.xml

И так она будет выглядеть после того как мы передадим туда данные.

Layout-ы мы закончили создавать переходим к Activity.

Шаг 2

Создадим теперь Activity для main.xml и назовем его MainActivity.java:

и для второго layout tow.xml создаем следующий Activity, назовем его NewActivity.java:

Шаг 3

Intent – этот класс позволяет открывать новое Activity, запускать сервис, передавать данные между Activity.

Теперь в MainActivity добавим следующий метод, который передаст значения с формы на другое Activity после клика по кнопке:

Источник

Android Передача данных — фрагмент в активность, активность в фрагмент

Передача данных между активностями или фрагментами — одна из основных концепций, которую необходимо изучить, когда вы начинаете заниматься разработкой android. Несмотря на то, что activities и fragments — это не что иное, как классы, в android они считаются специальными классами, поскольку являются основополагающими для работы пользовательского интерфейса android. Поэтому мы передаем им данные не просто через конструкторы, а одним из следующих трех способов:

  1. Intent .
  2. Пучок
  3. ViewModel

Все это мы рассмотрим на практических примерах в этом уроке. Давайте начнем.

Пример 1: Передача данных в Android — фрагмент в активность через интент .

Мы рассмотрели, как передавать данные от активности к фрагменту , как передавать список/объект от активности к активности , а также простые примитивные типы данных.

Сегодня мы рассмотрим, как передать простые типы данных из фрагмента в активность . Мы передаем данные через объект Intent .

Что такое фрагмент ?

Фрагмент» — это субактивность с собственным жизненным циклом. Фрагменты размещаются в активностях . Одна деятельность может содержать несколько фрагментов .

Зачем передавать данные из фрагмента в активность ?

Нет. Причина
1. Фрагменты являются суб-активностями и позволяют нам иметь различные экраны без необходимости создавать много активностей . Следовательно, нам нужно знать, как передать данные из фрагмента в активность .
2. Фрагменты, такие как Activities являются специальными классами пользовательского интерфейса, представляющими окно, и поэтому мы не можем передавать данные напрямую, как это делается с обычными классами.

Введение

  • У нас есть два класса: один — MainActivity , а другой — MyFragment .
  • Когда мы нажимаем кнопку FAB (Floating Action Button), мы открываем MyFragment через Fragment Transaction, прикрепляя его к FrameLayout, который мы определим.
  • Фрагмент содержит текст для редактирования и спиннер.
  • Пользователь вводит название космического аппарата и выбирает год запуска в крутилке.
  • Затем мы передаем эти данные обратно в MainActivity.
  • Затем отображаем полученные данные в текстовом окне.
  • В качестве IDE мы использовали Android Studio.
  • Код хорошо прокомментирован для облегчения понимания.

Общие вопросы, на которые мы отвечаем

На этом простом примере мы изучили следующее:

  • Как передать данные из фрагмента в activity «> активность .
  • Как передавать данные между фрагментом и активностью , используя намерения.
  • Как мне выполнить FragmentTransaction.
  • Переопределение onResume() и получение данных в android.
  • Как работать как с фрагментом , так и с активностью .

Используемые инструменты

  • IDE : Android Studio
  • OS : Windows 8.1
  • ПЛАТФОРМА : Android
  • ЯЗЫК : Java
  • TOPIC : Intent , Data Passing, Fragment .

Давайте посмотрим на исходный код.

1. Build.gradle

2. MainActivity.java

  • Наша MainActivity , запускающая activity «> activity .
  • Сначала мы ссылаемся на представления, в данном случае на простые текстовые представления для отображения полученных данных.
  • У нас есть метод: receiveData(), который отвечает за прием и распаковку данных, полученных от класса MyFragment .
  • Мы будем получать данные в методе onResume().
  • Поскольку методы вызываются не только при возобновлении работы с фрагментом , но и после создания и запуска activity «> активности , нам нужно будет идентифицировать вызывающего с помощью простой строки Sender, которую мы будем отправлять каждый раз, когда отправляем данные из фрагмента .
  • Если отправителем является MyFragment , то мы продолжаем распаковывать наши данные.

3. MyFragment.java

  • Наш класс Fragment .
  • Мы используем либарию поддержки Fragment , поэтому мы расширяем android.support.v4.app. Fragment«.
  • Здесь у нас есть текст для редактирования, кнопка и спиннер.
  • Пользователь должен ввести название космического аппарата в edittext, выбрать год запуска в spinner и нажать кнопку send, чтобы отправить данные в MainActivity.
  • Мы отправляем и упаковываем данные в intent .
  • Мы также отправляем переменную, которую называем sender, чтобы идентифицировать отправителя этих данных как этот фрагмент .

4. Создание пользовательских интерфейсов

Пользовательские интерфейсы обычно создаются в android с помощью XML-макетов, а не путем прямого java-кодирования.

Это пример декларативного программирования.

Преимущества использования XML по сравнению с Java
Нет. Преимущество
1. Декларативное создание виджетов и представлений позволяет нам использовать декларативный язык XML, что делает его проще.
2. Это легко обслуживается, так как пользовательский интерфейс отделен от логики Java.
3. Легче делиться или загружать код и безопасно тестировать его до выполнения.
4. Вы можете использовать инструменты для генерации XML .

Вот наши макеты для этого проекта:

(a). activity_main.xml
  • Этот макет раздувается до пользовательского интерфейса MainActivity.
  • Он включает в себя content_main.xml.

Вот некоторые из виджетов, представлений и групп представлений, которые используются»

No. View/ViewGroup Package Role
1. CordinatorLayout android.support.design.widget Супермощный фреймлаут, который обеспечивает оформление верхнего уровня нашего приложения, а также определяет взаимодействие и поведение всех его дочерних элементов.
2. AppBarLayout android.support.design.widget Дочерний LinearLayout, который располагает свои дочерние элементы вертикально и предоставляет концепции панели приложений Material Design, такие как жесты прокрутки.
3. ToolBar ViewGroup, которая может предоставлять функции панели действий и при этом использоваться в макетах приложений.
4. FloatingActionButton android.support.design.widget Круговое изображение, плавающее над пользовательским интерфейсом, которое мы можем использовать в качестве кнопки.
(b). content_main.xml

Этот макет включается в ваш activity_main.xml.
Здесь мы определяем наши виджеты пользовательского интерфейса.

  • Основной макет.
  • Здесь мы определяем представления и виджеты xml кода.
  • Этот макет будет вложен в наш интерфейс MainActivity.
  • Это макет contentmain.xml в нашем проекте.

(c). Макет MyFragment

  • Макет для нашего класса Fragment .
  • Содержит CardView с редактируемым текстом и спиннером.
  • Является макетом fragment_my.xml в нашем проекте.

Как выполнить

  • Скачайте проект выше.
  • Вы получите заархивированный файл, распакуйте его.
  • Откройте Android Studio.
  • Теперь закройте все уже открытые проекты.
  • На панели меню нажмите на Файл >Новый> Импорт проекта
  • Теперь выберите папку назначения, из которой вы хотите импортировать проект.
  • Выберите проект Android.
  • Теперь нажмите на «OK«.
  • Готово, вы импортировали проект, теперь отредактируйте его.

Результат

Вот что вы получите:

фрагмента в активность «>

Дополнительные ресурсы

Ресурс Ссылка
GitHub Browse Browse Browse
Ссылка для скачивания Download GitHub Download Link Download

Пример 2: Передача данных Android — от Activity к Fragment через Bundle

При разработке любого приложения, которое не является Hello World, есть вероятность, что вам понадобится более одной активности или фрагментов. Фрагменты, по сути, являются подактивностями.

Большинство новичков путаются в передаче данных между активностями или между фрагментами .

Сегодня мы хотим посмотреть, как передавать данные из активности во фрагмент . Мы будем использовать объект Bundle , упакуем в него данные в нашей Activity , а затем распакуем эти данные в методе onCreateView() нашего фрагмента .

ШАГ 1: Создание проекта

  1. Сначала создайте новый проект в android studio. Перейдите в меню Файл —> Новый проект.
  2. Введите название приложения и выберите название компании.
  3. Выберите минимальный SDK.
  4. Выберите Empty или Basic activity .
  5. Нажмите Finish.

ШАГ 2 : Наш Build.gradle .

  • Мы будем использовать CardView в нашем фрагменте . Никаких внешних зависимостей не требуется.

ШАГ 3 : Наш Фрагмент

  • Мы будем раздувать макет нашего фрагмента .
  • Мы будем просто получать данные, отправленные из MainActivity, и показывать их в наших представлениях внутри нашего фрагмента .
  • Мы распакуем данные в нашем методе onCreateView().

ШАГ 4 : Наша MainActivity (Главная активность)

  • Должен быть взят из нашего contentmain.xml.
  • Когда пользователь нажимает на плавающую кнопку действия, мы упаковываем данные, введенные пользователем в edittext и spinner в объект Bundle .
  • Затем мы выполняем транзакцию Fragment’, заменяя наш контейнер Framelayout нашим раздутым fragment’.
  • Мы отправляем пакет в Fragment .

ШАГ 5. Создание пользовательского интерфейса `Activity

Пользовательские интерфейсы обычно создаются в android с помощью XML-макетов, а не путем прямого java-кодирования.

Это пример декларативного программирования.

Преимущества использования XML над Java

Нет. Преимущество
1. Декларативное создание виджетов и представлений позволяет нам использовать декларативный язык XML, что делает его проще.
2. Это легко обслуживается, так как пользовательский интерфейс отделен от логики Java.
3. Легче делиться или загружать код и безопасно тестировать его до выполнения.
4. Вы можете использовать инструменты для генерации XML для генерации XML.

Вот наши макеты для этого проекта:

(a). activity_main.xml
  • Этот макет раздувается до пользовательского интерфейса MainActivity.
  • Он включает в себя content_main.xml.

Вот некоторые из виджетов, представлений и групп представлений, которые используются»

No. View/ViewGroup Package Role
1. CordinatorLayout android.support.design.widget Супермощный framelayout , который обеспечивает оформление верхнего уровня нашего приложения, а также определяет взаимодействие и поведение всех его дочерних элементов.
2. AppBarLayout android.support.design.widget Дочерний LinearLayout, который располагает свои дочерние элементы вертикально и предоставляет концепции панели приложений Material Design, такие как жесты прокрутки.
3. ToolBar ViewGroup, которая может предоставлять функции actionbar и при этом использоваться в макетах приложений.
4. FloatingActionButton android.support.design.widget Круговое изображение, плавающее над пользовательским интерфейсом, которое мы можем использовать в качестве кнопки.
(b). content_main.xml

Этот макет включается в ваш activity_main.xml.
Здесь мы определяем наши виджеты пользовательского интерфейса.

ШАГ 6: Наш фрагмент xml

  • Наш макет фрагмента .
  • Должен содержать CardView с текстовыми представлениями.

ШАГ 7 : Как выполнить

  • Скачайте проект.
  • Вы получите заархивированный файл, распакуйте его.
  • Откройте Android Studio.
  • Теперь закройте все уже открытые проекты.
  • На панели меню нажмите на Файл >Новый> Импорт проекта
  • Теперь выберите папку назначения, из которой вы хотите импортировать проект.
  • Выберите проект Android.
  • Теперь нажмите на «OK«.
  • Готово, теперь отредактируйте его.

Результат

Вот что вы получите:

активности во фрагмент «>

ШАГ 8: Подробнее

Ресурс Ссылка
GitHub Browse Browse
Ссылка на скачивание Download GitHub Download Link Download

Передача данных в Android: ListView to ListView

Иногда вам может понадобиться передать данные из одного ListView в Activity A в ListView в Activity B. Это и есть цель данного руководства.

У нас будет два вида деятельности, каждый из которых имеет ListView. Мы нажимаем кнопку и передаем данные из первой активности во вторую активность , из первого litsview во второй listview.

Скрипты Gradle

Давайте изменим наш файл build.gradle на уровне приложения.

1. Build.gradle

  • Указываем зависимости в закрытии dependencies.

LAYOUTS

У нас будет три макета:

1. activity_main.xml

  • Этот макет будет раздуваться в UI для нашей основной активности.
  • Он будет содержать макет content_main.xml .
  • Он содержит определения нашей панели приложений и панели инструментов.

2. content_main.xml

  • Здесь будет содержаться наш первый ListView.
  • Этот макет будет включен в activity_main.xml .

3. activity_second.xml

  • Этот макет будет раздуваться в пользовательский интерфейс для нашей второй активности .
  • Он будет содержать вторую активность .

КЛАССЫ JAVA

Вот наши java-классы:

1. SpacecraftsCollection

  • Это класс, который поможет нам в передаче нашего списка ArrayList от первой ко второй активности . Этот класс будет сериализован, передан, а затем десериализован во второй активности .

2. SecondActivity.java

  • Это наш второй класс активности .
  • Он получит сериализованный список массивов, содержащий наши космические корабли, десериализует его и отобразит во втором представлении списка.

3. MainActivity.java

  • Наш класс MainActivity.
  • Данные нашего списка будут передаваться отсюда во вторую активность при нажатии на плавающую кнопку действия.

Результат

Вот что вы получите при запуске проекта:

Download

report this ad

Источник

Читайте также:  Как поделиться паролем wifi с андроида
Оцените статью