Запуск новой Activity, сохранение и получение результатов (данных) между экранами (Activity)

Для запуска новой Activity необходим объект Intent. Объект Intent - объект, который обеспечивает связывание отдельных компонент во время выполнения (например, двух Activity).

Intent intent = new Intent(this, NewActivity.class);

Конструктор этого объекта принимает два параметра:

- Первый параметр представляет контекст - объект Context (ключевое слово this употребляется здесь, так как класс CurrentActivity является подклассом класса Context)

- Вторым параметром идет класс компонента, которому мы передаем объект Intent.

Intent может нести коллекцию различных типов данных в виде пары ключ-значение, называемых Extras. Метод putExtra принимает имя ключа в первом параметре и значение во втором параметре.

intent.putExtra(key, value);

Для получения данных: getIntent().getStringExtra(key);

Для запуска Activity нужно вызвать метод startActivity и передать ему в качестве параметра объект Intent. После вызова этого метода система получит сигнал и запустить новый объект Activity, определенный объектом Intent. Для получения результата NewActivity необходимо использовать метод startActivityForResult (Intent intent, int requestCode): intent передает в запускаемую activity данные, а requestCode указывает на целочисленный код запроса. Причем числовой код запроса представляет константу REQUEST_ACCESS_TYPE. Здесь не столь важно, какое число передавать в качестве результата, но используя это число, мы потом можем выполнить обработку полученного ответа от NewActivity, особенно если в разных ситуациях применяется несколько числовых кодов запроса. Для получения и обработки результата, полученного от NewActivity, необходимо переопределить метод onActivityResult. Этот метод принимает три параметра: requestCode - числовой код запроса, который был отправлен вторым параметром в startActivityForResult; resultCode - числовой код результата. В качестве результата, как правило, применяются встроенные константы RESULT_OK и RESULT_CANCELED; data - отправленные данные из NewActivity в CurrentActivity. Для возврата результата необходимо вызвать метод setResult, в который передается два параметра: числовой код результата и отправляемые данные. После вызова метода setResult() нужно вызвать метод finish, который уничтожит текущую activity.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: