Основа любого android-приложение — взаимодействие активностей.
Под активностью можно понимать окна, между которыми переключается пользователь. Простые приложения состоят из одной активности. Более сложные приложения могут иметь несколько окон, т.е. они состоят из нескольких активностей, которыми надо уметь управлять и которые могут взаимодействовать между собой.
Еще активность можно сравнить со страницами разных сайтов, открываемых в браузере по ссылке.
Обычно активности занимают весь экран. Но это не обязательно. Можно создавать полупрозрачные активности и активности ввиде плавающих окон.
При создании android-приложения, сперва необходимо выбрать главную активность экрана, т.е. активность, которая запускается первой.
Из главной активности приложения будут запускаться другие активности. Причем, не только нашего, но и другого приложения. Пользователю будет казаться, что все запускаемые им активности являются частями одного приложения, хотя на самом деле, они могут работать в разных приложениях и на разных процессах.
Рассмотрим содержимое файла главной активности: контроллер MainActivity из папки Java.
Оператор package указывает на то, что класс в этом файле является частью пакета package by.colony.mikhalkevich. А с помощью оператора import мы можем импортировать различные интерфейсы и классы в приложение.
Активность представлена экземпляром класса Activity — класса из Android SDK. Данный класс отвечает за взаимодействие пользователя с информацией на экране.
Главная активность приложения. Листинг |
package by.colony.mikhalkevich.hello; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } |
Активность имеет жизненный цикл. Начало, когда создается экземпляр активности, промежуточное состояние, и конец, когда экземпляр класса уничтожается. В момент создания активности вызывается метод onCreate().
Активность может находиться в трех состояниях:
активная (active, running) – активность находится на переднем плане экрана. Пользователь может взаимодействовать с активным окном.
приостановленная (paused) – активность потеряла фокус, но всё еще видна пользователю.
остановленная (stopped).
Методы жизненного цикла приложения:
protected void onCreate() вызывается при создании активности
protected void onStart() вызывается в момент старта активности. Активность еще не видна пользователю, но скоро будет видна.
protected void onStop() вызывается в момент остановки активности.
protected void onRestart() вызывается после того, как остановленная активность запускается снова.
protected void onPause() вызывается в момент, когда пользователь переходит к новой активности, не выходя из текущей.
protected void onDestroy() вызывается по окончании работы активности.
Приложение с несколькими активностями
Создать новую активность мы можем двумя способами: в ручную, либо с помощью команды File -> new ->activity -> (выбор нужной активности).
Каждую активность необходимо прописывать в файле манифеста. При создании активности программно, запись в файл манифеста добавляется автоматически.
Запись в файле манифеста в приложении с двумя активностями. Листинг 1. |
<activity android:name=".Main2Activity">activity> |
Также автоматически создается класс активности и шаблон, вызываемый классом.
Для вызова активности из метода воспользуемся классом Intent.
Вызов активности из метода. Листинг 1. |
import android.content.Intent; public void Back(View view) { |
Передача данных между активностями осуществляется с помощью метода putExtra класса Intent.
Рассмотрим передачу данных между активностями на примере. Для этого создадим две активности: MainActivity и Second.
MainActivity. Листинг 1. |
import android.app.Activity; |
MainActivity вызывает шаблон activity_main, в котором два элемента формы для ввода текста и кнопка, по нажатию на которую вызывается метод Send первой активности.
Шаблон activity_main. Листинг 1. |
<LinearLayout |
Переходим к редактированию второй активности.
Активность Second. Листинг 1. |
import android.app.Activity; |
Шаблон второй активности.
Шаблон активности Second. Листинг 1. |
xml version="1.0" encoding="utf?8"?> |
Видео по теме: https://www.youtube.com/watch?v=dsuc29P7H68