MVC в Android. Создание простейшего приложения презентация

Содержание

Слайд 2

Model-View-Controller

Model-View-Controller

Слайд 3

Создание простейшего приложения

Создание простейшего приложения

Слайд 4

Настройка проекта Имя пакета должно оставаться неизменным на протяжении всего

Настройка проекта

Имя пакета должно оставаться неизменным на протяжении всего срока жизни

приложения!
Это уникальный идентификатор вашего приложения, который используется для управления версиями программы.
Слайд 5

Сладкий мир версий Android https://developer.android.com/about/dashboards/index.html

Сладкий мир версий Android

https://developer.android.com/about/dashboards/index.html

Слайд 6

Настройка версий Если вы не хотите, чтобы приложение работало только

Настройка версий

Если вы не  хотите, чтобы 
приложение работало только
на самых новых устройствах,
стоит выбрать один из более
старых уровней API.

Слайд 7

Добавление активности Каждое Android-приложение состоит из экранов, акаждый экран состоит из активности и макета.

Добавление активности

Каждое  Android-приложение состоит из экранов, акаждый экран состоит из активности и макета.

Слайд 8

Взаимодействие активности и макета Активность — одна четко определенная операция,

Взаимодействие активности и макета

Активность — одна четко определенная операция, которую может

выполнить пользователь. 
Макет описывает внешний вид экрана.
Слайд 9

Взаимодействие активности и макета Устройство запускает приложение и создает объект

Взаимодействие активности и макета

Устройство запускает приложение и создает объект активности.
Объект активности

задает макет.
Активность приказывает Android вывести макет на экран.
Пользователь взаимодействует с макетом, отображаемым на устройстве.
Активность реагирует на эти взаимодействия, выполняя код приложения.
Активность обновляет содержимое экрана...
...и пользователь видит это на устройстве.

Активность
public class MainActivity extends Activity {
...
}

Макет



Макет



Слайд 10

Настройки активности

Настройки активности

Слайд 11

Структура проекта Исходные файлы Java и XML Файлы активности и

Структура проекта

Исходные файлы Java и XML Файлы активности и макета, которые были  созданы за вас мастером.
Файлы Java, сгенерированные Android

Дополнительные файлы Java, которые  Android Studio тоже генерирует автоматически. Вносить в них изменения не придется, да и нельзя.
Файлы ресурсов К этой категории относятся файлы изображений на значках по умолчанию, стили, которые могут использоваться вашим приложением, и все общие строковые данные,  к которым может обращаться приложение.
Библиотеки Android В окне мастера была указана минимальная  версия SDK, с которой должно быть совместимо приложение. Android  Studio включает в приложение библиотеки Android, актуальные для этой версии.
Файлы конфигурации Файлы конфигурации сообщают Android,  что содержит приложение и как его следует  выполнять.
Слайд 12

Структура проекта

Структура проекта

Слайд 13

Структура проекта

Структура проекта

Слайд 14

Структура проекта

Структура проекта

Слайд 15

activity_main.xml xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" android:paddingBottom="16dp" android:orientation="vertical" tools:context="com.hfad.myfirstapp.MainActivity"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />

activity_main.xml


xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"

android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingTop="16dp"
android:paddingBottom="16dp"
android:orientation="vertical"
tools:context="com.hfad.myfirstapp.MainActivity">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />

Слайд 16

MainActivity.java package com.hfad.myfirstapp; import android.os.Bundle; import android.app.Activity; public class MainActivity

MainActivity.java

package com.hfad.myfirstapp;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
@Override

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
Слайд 17

Запуск приложения в эмуляторе Файл APK — файл пакета приложения

Запуск приложения в эмуляторе

Файл APK — файл пакета приложения Android. По

сути это архив JAR или ZIP с приложением Android.

Файлы с исходным кодом Java компилируются в байт-код.
Создается пакет Android-приложения, или файл APK.
Если эмулятор не выполняется в настоящий момент, он запускается с AVD.
Когда эмулятор будет запущен, а AVD активизируется, файл APK передается на AVD и устанавливается.
AVD запускает главную активность, связанную с приложением.

Слайд 18

Запуск приложения в эмуляторе

Запуск приложения в эмуляторе

Слайд 19

Взаимодействие активности и макета

Взаимодействие активности и макета

Слайд 20

А что по пиву посоветуете?

А что по пиву посоветуете?

Слайд 21

Структура приложения Макет определяет, как будет выглядеть приложение. Файл strings.xml

Структура приложения

Макет определяет, как будет выглядеть приложение.
Файл strings.xml включает все

строковые ресурсы, необходимые макету, — например, текст надписи на кнопке, входящей в макет, и названия сортов пива.
Активность определяет, как приложение должно взаимодействовать с пользователем.
Класс Java, содержащий логику приложения.
Слайд 22

Редактирование макета

Редактирование макета

Слайд 23

Редактирование макета

Редактирование макета

Слайд 24

Параметры кнопки android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button" />

Параметры кнопки

Слайд 25

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16dp" android:orientation="vertical" tools:context="com.hfad.beeradviser.FindBeerActivity"> android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content"

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="16dp"


android:orientation="vertical"
tools:context="com.hfad.beeradviser.FindBeerActivity">
Слайд 26

Файл строковых ресурсов strings.xml Beer Adviser Find Beer! No beers selected

Файл строковых ресурсов

strings.xml

Beer Adviser
Find Beer!

name="brands">No beers selected

Слайд 27

Использование строковых ресурсов в макете android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/find_beer" /> android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/brands" />

Использование строковых ресурсов в макете


android:text="@string/find_beer" />
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/brands" />
Слайд 28

string_value "@string/string_name"

string_value
"@string/string_name"

Слайд 29

Раскрывающийся список значений в системе Android. Компонент предназначен для выбора

Раскрывающийся список значений в системе Android.
Компонент предназначен для выбора одного

значения из представленного набора:
android:id="@+id/color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_gravity="center"
android:layout_margin="16dp" />
Слайд 30

Строковый массив как ресурс значение1 значение2 значение3 ... "@array/имя_массива"

Строковый массив как ресурс


значение1
значение2
значение3


...

"@array/имя_массива"
Слайд 31

strings.xml Beer Adviser Find Beer! No beers selected light amber brown dark

strings.xml

Beer Adviser
Find Beer!
No beers

selected
light amber
brown dark


Слайд 32

Добавление значений в раскрывающийся список android:id="@+id/color" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="40dp" android:layout_gravity="center" android:layout_margin="16dp" android:entries="@array/beer_colors" />

Добавление значений в раскрывающийся список

android:id="@+id/color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"


android:layout_marginTop="40dp"
android:layout_gravity="center"
android:layout_margin="16dp"
android:entries="@array/beer_colors" />
Слайд 33

Связывание макета и активности. Обработка событий android:id="@+id/button" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/find_beer" android:onClick="onClickFindBeer" />

Связывание макета и активности. Обработка событий

android:layout_height="wrap_content"
android:text="@string/find_beer"
android:onClick="onClickFindBeer" />
Слайд 34

Связывание макета и активности. Обработка событий package com.hfad.beeradviser; import android.app.Activity;

Связывание макета и активности. Обработка событий

package com.hfad.beeradviser;
import android.app.Activity;
import android.os.Bundle;
import

android.view.View;
public class FindBeerActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_find_beer);
}
public void onClickFindBeer(View view) {
}
}
Слайд 35

FindBeerActivity.java package com.hfad.beeradviser; … import android.widget.Spinner; import android.widget.TextView; import java.util.List;

FindBeerActivity.java

package com.hfad.beeradviser;

import android.widget.Spinner; import android.widget.TextView;
import java.util.List;
public class FindBeerActivity extends

Activity {
private BeerExpert expert = new BeerExpert();

public void onClickFindBeer(View view) {
TextView brands = (TextView) findViewById(R.id.brands);
Spinner colorSpinner = (Spinner) findViewById(R.id.color);
String beerType = String.valueOf(colorSpinner.getSelectedItem());
List brandsList = expert.getBrands(beerType);
StringBuilder brandsFormatted = new StringBuilder();
for (String brand : brandsList) {
brandsFormatted.append(brand).append('\n');
}
brands.setText(brandsFormatted);
}
}
Слайд 36

Получение ссылки на компонент TextView brands =(TextView)findViewById(R.id.brands); brands.setText(“Мама мыла раму”);

Получение ссылки на компонент

TextView brands =(TextView)findViewById(R.id.brands);
brands.setText(“Мама мыла раму”);
brands.setText(R.string.find_beer);
! R.java генерируется самостоятельно.

Вы не сможете изменять код, находящийся в R, но полезно знать, что он существует.
Слайд 37

Получение значения, выбранного в списке Spinner colorSpinner = (Spinner) findViewById(R.id.color); String beerType = String.valueOf(colorSpinner.getSelectedItem());

Получение значения, выбранного в списке

Spinner colorSpinner =
(Spinner) findViewById(R.id.color);
String beerType

=
String.valueOf(colorSpinner.getSelectedItem());
Слайд 38

Класс бизнес-логики package com.hfad.beeradviser; import java.util.ArrayList; import java.util.List; public class

Класс бизнес-логики

package com.hfad.beeradviser;
import java.util.ArrayList;
import java.util.List;
public class BeerExpert {
List

getBrands(String color) {
List brands = new ArrayList<>();
if (color.equals("amber")) {
brands.add("Jack Amber");
brands.add("Red Moose");
} else {
brands.add("Jail Pale Ale");
brands.add("Gout Stout");
}
return brands;
}
}
Слайд 39

Взаимодействие активности и макета Устройство запускает приложение и создает объект

Взаимодействие активности и макета

Устройство запускает приложение и создает объект активности.
Объект активности

задает макет.
Активность приказывает Android вывести макет на экран.
Пользователь взаимодействует с макетом, отображаемым на устройстве.
Активность реагирует на эти взаимодействия, выполняя код приложения.
Активность обновляет содержимое экрана...
...и пользователь видит это на устройстве.

Активность
public class MainActivity extends Activity {
...
}

Макет



Макет



string.xml



Слайд 40

Вспомнить всё Версии Android характеризуются номером версии, уровнем API и

Вспомнить всё

Версии Android характеризуются номером версии, уровнем API и кодовым именем.


Android Studio — специализированная версия среды IntelliJ IDEA, интегрированная с пакетом Android Software Development Kit (SDK) и системой сборки Gradle.
Типичное Android-приложение состоит из активностей, макетов и файлов ресурсов.
Макеты описывают внешний вид приложения. Они хранятся в папке app/src/ main/res/layout.
Активности описывают то, что делает приложение и как оно взаимодействует с пользователем. Созданные вами активности хранятся в папке app/src/main/java.
Файл AndroidManifest.xml содержит информацию о самом приложении. Этот файл находится в папке app/src/main.
AVD — виртуальное устройство Android (Android Virtual Device). AVD выполняется в эмуляторе Android и моделирует физическое устройство Android.
APK — пакет приложения Android, аналог JAR-файла для приложений Android. Файл содержит байт-код приложения, библиотеки и ресурсы. Установка приложения на устройстве осуществляется установкой его пакета APK.
Приложения Android выполняются в отдельных процессах с использованием исполнительной среды Android (ART).
Элемент используется для вывода текста.
Слайд 41

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

Элемент

списка.
Все компоненты графического интерфейса наследуют от класса Android View.
Файл strings.xml содержит пары «имя/значение» для строк. Они используются для вынесения конкретных текстовых значений из макетов и активностей, а также для поддержки локализации.
Для добавления строк в strings.xml используется синтаксис:
Value
Обращение к строке в макете выглядит так:
"@string/name"
Массив строковых значений создается в strings.xml конструкцией следующего вида:

string1
...

Для обращения к string-array в макете используется синтаксис:
"@array/array_name"
Слайд 42

Вспомнить всё Чтобы при щелчке на кнопке вызывался метод, включите

Вспомнить всё

Чтобы при щелчке на кнопке вызывался метод, включите в

макет следующий атрибут:
android:onClick="clickMethod"
При этом в активности должен существовать соответствующий метод:
public void clickMethod(View view){ }
Класс R.java генерируется средой. Он позволяет получать ссылки на макеты, компоненты графического интерфейса, строки и другие ресурсы в коде Java.
Метод findViewById() возвращает ссылку на компонент.
Метод setText() задает текст компонента.
Метод getSelectedItem() возвращает вариант, выбранный в раскрывающемся списке.
Имя файла: MVC-в-Android.-Создание-простейшего-приложения.pptx
Количество просмотров: 255
Количество скачиваний: 0