Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
14 Апр 2023
2 мин
172

Передача объектов между активностями в Android

Часто разработчики сталкиваются с задачей передачи данных между различными активностями приложения на Android. Особенно актуальна эта проблема становится,

Часто разработчики сталкиваются с задачей передачи данных между различными активностями приложения на Android. Особенно актуальна эта проблема становится, когда нужно передать целый объект.

Рассмотрим пример. Пусть есть класс Book, который содержит информацию о книгах (название, автор, год издания и прочее). И имеется две активности: в первой пользователь выбирает книгу, а вторая активность должна отобразить подробную информацию о выбранной книге.

public class Book {

    private String title, author;
    private int year;

    public Book(String title, String author, int year) {
        this.title = title;
        this.author = author;
        this.year = year;
    }

    public String getTitle() {
        return title;
    }

    public String getAuthor() {
        return author;
    }

    public int getYear() {
        return year;
    }
}

Для передачи объекта между активностями можно воспользоваться механизмом Intent. Однако, просто так передать объект нельзя: он должен быть сериализуемым или Parcelable.

Самый простой способ — сделать объект Serializable. Для этого в классе нужно реализовать интерфейс Serializable:

import java.io.Serializable;

public class Book implements Serializable {
    // остальной код
}

Теперь можно передать объект Book из одной активности в другую:

// создание объекта Book
Book book = new Book("1984", "George Orwell", 1949);

// создание Intent
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);

// добавление объекта Book в Intent
intent.putExtra("selected_book", book);

// запуск SecondActivity
startActivity(intent);

Во второй активности можно получить объект Book следующим образом:

// получение Intent
Intent intent = getIntent();

// извлечение объекта Book
Book book = (Book) intent.getSerializableExtra("selected_book");

// теперь можно использовать book для отображения информации о книге

Итак, был описан простой способ передачи объектов между активностями в Android.

Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей

Добавить комментарий