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, сгенерированные Android Дополнительные файлы Java, которые  Android Studio тоже генерирует

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

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

Слайд 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 extends Activity {
@Override protected void

onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}

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

Слайд 17

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

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

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

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

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

Слайд 18

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

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

Слайд 19

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

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

Слайд 20

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

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

Слайд 21

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

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

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

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

Слайд 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">

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" android:text="Button" /> android:id="@+id/textView"

Слайд 26

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

strings.xml

Beer Adviser
Find Beer!
No beers

selected

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

Слайд 27

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

/>
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/brands" />

Использование строковых ресурсов в макете 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" />

Слайд 28

string_value
"@string/string_name"

string_value "@string/string_name"

Слайд 29

Раскрывающийся список значений в системе 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" />

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

Слайд 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:text="@string/find_beer"
android:onClick="onClickFindBeer" />

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

Слайд 34

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

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) {
}
}

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

Слайд 35

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);
}
}

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

Слайд 36

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

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

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

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

Слайд 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 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;
}
}

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

Слайд 39

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

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

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

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

Макет



Макет



string.xml



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

Слайд 40

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

Версии 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).
Элемент используется для вывода текста.

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

Слайд 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
Количество просмотров: 252
Количество скачиваний: 0