Разработка мобильных приложений
Надпись (TextView)
Текстовое поле (EditText)
Кнопка (Button)
Вывод изображений на кнопках (Button)
Двухпозиционная кнопка (ToggleButton)
Переключатель(Switch)
Флажки (CheckBox)
Переключатели (RadioButton)
Раскрывающийся список (Spinner)
Графическое представление (ImageView)
Графическая кнопка (ImageButton)
Прокручиваемые представления (ScrollView)
Уведомления (Toast)
Intent
Виды Intent
Обычно содержат
Переход на новую активность при помощи Intent
Переход в другое приложение
Выбор приложения для запуска
Intent Filter
Intent Filter
Intent Filter
Что будем делать ч.1
Что будем делать ч.2
Что будем делать ч.2
Что будем делать ч.2
29.94M
Category: programmingprogramming

Разработка мобильных приложений

1. Разработка мобильных приложений

федеральное государственное бюджетное образовательное учреждение
высшего образования
«ТОЛЬЯТТИНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Разработка мобильных
приложений
Тонких Артём Петрович
старший преподаватель кафедры
«Прикладная математика и информатика»
© ТГУ, 2021

2.

Подключить телефон - https://developer.android.com/studio/run/device

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

50.

51.

52.

53.

54.

55.

56.

57.

Material Design https://material.io/
design/introductio
n/#principles

58.

dp https://material.io/desig
n/layout/understandinglayout.html#pixeldensity

59.

60.

61.

sp https://material.io/
design/typography
/#type-scale

62.

63.

64.

65.

66.

67.

68.

69.

70.

71.

72.

73.

74.

75.

76.

77.

color https://material
.io/design/color
/#

78.

79.

80.

81.

82.

83.

84.

85.

86.

87.

88.

89.

90.

https://developer.android.com/guide/topics
/ui/layout/linear

91.

92.

93.

94.

95.

96.

97.

98.

99.

100.

101.

102.

103.

104.

105.

106.

107.

108.

109.

110.

111.

112.

113.

114.

https://developer.android.com/guide/topics/ui/layout/relative.html
https://developer.android.com/training/constraintlayout/index.html
https://developer.android.com/guide/topics/ui/layout/gridview
https://developer.android.com/guide/topics/ui/layout/listview
https://developer.android.com/guide/topics/ui/layout/recyclervie
w
https://github.com/google/flexbox-layout

115.

116.

117.

118.

119.

120.

121.

122.

123.

124.

125.

126.

127.

128. Надпись (TextView)

Используется для вывода текста.
•Для изменения размера используется атрибут android:textSize:
android:textSize="14sp"
•Определение в XML
<TextView
android:id="@+id/textview" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/text" />
•Использование надписи в коде активности TextView tV =
(TextView) findViewById(R.id.textview); textView.setText("Some other
string");

129. Текстовое поле (EditText)

Аналог надписи, но с возможностью редактирования.
•Определение в XML
<EditText
android:id="@+id/edit_text" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:hint="@string/edit_text"
/>
•Атрибут android:inputType="number"
phone - предоставляет клавиатуру для ввода номеров.
textPassword - предоставляет клавиатуру для ввода пароля.
textCapSentences - первое слово начинается с прописной буквы.
textAutoCorrect - автоматически исправляет вводимый текст.
•Использование в коде активности
EditText editText = (EditText) findViewById(R.id.edit_text); String text =
editText.getText().toString();

130. Кнопка (Button)

• Определение в XML
<Button android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_text" />
• Использование в коде активности
android:onClick="onButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на кнопке */ public void
onButtonClicked(View view) {
// Сделать что-то по щелчку на кнопке
}

131. Вывод изображений на кнопках (Button)

• Вывод текста и изображения на кнопке
Вывести графический ресурс android в правой части кнопки.
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableRight="@drawable/android"
android:text="@string/click_me" />
Чтобы изображение располагалось слева от текста, воспользуйтесь
атрибутом android:drawableLeft:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/android"
android:text="@string/click_me" />

132. Двухпозиционная кнопка (ToggleButton)

Щелкая на двухпозиционной кнопке, пользователь выбирает одно из двух состояний.
•Определение в XML
<ToggleButton android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="@string/on" android:textOff="@string/off" />
•Использование в коде активности
android:onClick="onToggleButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на двухпозиционной кнопке*/ public void onToggleClicked(View view) {
// Получить состояние двухпозиционной кнопки. boolean on = ((ToggleButton) view).isChecked();
if (on) {
// Вкл
} else {
// Выкл
}
}

133. Переключатель(Switch)

Выключатель представляет собой рычажок, который работает по
тому же принципу, что и двухпозиционная кнопка.
•Определение в XML
<Switch
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:textOn="@string/on" android:textOff="@string/off" />
•Использование в коде активности
android:onClick="onSwitchClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на выключателе. */ public void onSwitchClicked(View view) {
// Включенное состояние?
boolean on = ((Switch) view).isChecked(); if (on) {
// Вкл
} else {
// Выкл
}
}

134. Флажки (CheckBox)

Флажки (check boxes) предоставляют пользователю набор независимых вариантов.
Каждый флажок может устанавливаться или сниматься независимо от всех остальных
флажков.
•Определение в XML
<CheckBox

android:text="@string/content1" />
<CheckBox

android:text="@string/content2" />
•Использование в коде активности
CheckBox cb = (CheckBox) findViewById(R.id.check); boolean checked = checkbox.isChecked();
if (checked) {
//Действия для установленного флажка
}

135. Переключатели (RadioButton)

Переключател
и (RadioButton)
Переключатели предоставляют набор вариантов, из которого
пользователь может выбрать ровно один вариант:
•Определение в XML
<RadioGroup android:id="@+id/radio_group" android:layout_width="match_parent"
android:layout_height="wrap_content" android:orientation="vertical">
<RadioButton android:id="@+id/radio_circle" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/circle" />
<RadioButton android:id="@+id/radio_square"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@string/square" />
</RadioGroup>

136. Раскрывающийся список (Spinner)

Раскрывающийся список содержит набор значений, из
которых
пользователь может выбрать только одно.
Определение в XML
<Spinner
android:id="@+id/spinner" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:entries="@array/spinner_values" />
Массив строк добавляется в файл strings.xml :
<string-array name="spinner_values">
<item>New Delphi</item>
<item>Haryana</item>
<item>Bihar/item>
<item>Guijrat</item>
</string-array>
Использование в коде активности
Spinner spinner = (Spinner) findViewById(R.id.spinner); String string =
String.valueOf(spinner.getSelectedItem());

137. Графическое представление (ImageView)

• Определение в XML макета
<ImageView android:layout_width="200dp" android:layout_height="100dp"
android:src="@drawable/logo"
android:contentDescription="@string/logo" />
Ресурсы изображений снабжаются префиксом @drawable, который сообщает
Android, что ресурс изображения хранится в одной или нескольких папках
drawable.
• Использование в коде активности
ImageView photo = (ImageView)findViewById(R.id.photo); int image =
R.drawable.logo;
String description = "This is the logo"; photo.setImageResource(image);
photo.setContentDescription(description);

138. Графическая кнопка (ImageButton)

Графическая кнопка почти не отличается от обычной — просто на ней выводится только изображение,
без текста.
•Определение в XML
<ImageButton android:id="@+id/button"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/button_icon />
•Использование в коде активности
android:onClick="onButtonClicked"
Затем в активности определяется метод следующего вида:
/** Вызывается при щелчке на кнопке */ public void onButtonClicked(View view) {
// Сделать что-то по щелчку на кнопке
}

139. Прокручиваемые представления (ScrollView)

•Чтобы добавить вертикальную полосу прокрутки, заключите существующий макет в элемент
<ScrollView>:
<ScrollView 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" tools:context=".MainActivity" >
<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="16dp"
android:paddingLeft="16dp" android:paddingRight="16dp" android:paddingTop="16dp" android:orientation="vertical" >
...
</LinearLayout>
<ScrollView
•Чтобы добавить в макет горизонтальную полосу прокрутки, заключите существующий макет в
элемент <HorizontalScrollView>.

140. Уведомления (Toast)

Уведомления выполняют чисто информационные функции,
пользователь не может с ними взаимодействовать. Пока
уведомление находится на экране, активность остается
видимой и доступной для взаимодействия с пользователем.
Уведомление автоматически закрывается по истечении
тайм-аута.
•Использование в коде активности:
1.Уведомления создаются только в коде активности;
2.Определить их в макете невозможно.
CharSequence text = "Hello, I'm a Toast!"; int duration =
Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(this, text, duration); toast.show();

141.

142.

143.

144.

145.

146.

147.

148.

149.

150.

151.

152.

153.

154.

155.

156.

157.

158.

159.

160.

161.

162.

163.

164.

165.

166.

167.

168.

169.

170.

171.

172.

173.

174.

175.

176.

177.

178.

179.

180.

181.

182.

183.

184.

185.

186.

187.

188.

189.

190.

191.

192.

193.

194.

195.

196.

197.

198.

199.

200.

201.

202.

203.

204.

205.

206.

207.

208.

https://developer.android.com/reference/java/lang/StringBuilder

209.

210.

211.

212.

213.

214.

215.

216. Intent


Запустить другое приложение
Открыть файл
Перейти на другой экран
Бывают: явные (explicit) и неявные (implicit)
Activity 1
Intent
Activity 2
Activity 3
https://developer.android.com/reference/android/content/Intent
21
6

217. Виды Intent

Явные(Explicit) интенты:
•Адресуются конкретному компоненту(с помощью component name)
•Обычно используется для запуска внутренних компонентов
Неявные(Implicit) интенты:
•Не имеют конкретного адресата
•Обычно используются для запуска компонентов сторонних приложений
•Система находит наиболее подходящие компоненты(или несколько)
21
7

218. Обычно содержат


Имя компонента
Действие – action (ACTION_VIEW, ACTION_EDIT и т.д.)
Категория – category (CATEGORY_LAUNCHER, CATEGORY_BROWSABLE)
Данные – data (URI)
Дополнительные параметры – extras*
*Например, при создании объекта Intent для отправки сообщения электронной почты с
методом ACTION_SEND можно указать получателя с помощью ключа EXTRA_EMAIL, а тему сообщения
― с помощью ключа EXTRA_SUBJECT.
https://developer.android.com/reference/android/content/Intent
21
8

219. Переход на новую активность при помощи Intent

отдает
принимает
21
9

220. Переход в другое приложение

неявный
intent
явный
intent
22
0

221. Выбор приложения для запуска

Метод createChooser()
позволяет выбрать
приложение
22
1

222. Intent Filter

Указываются в AndroidManifest.xml
activity
service
22
2

223. Intent Filter

Указываются в AndroidManifest.xml
receiver
22
3

224. Intent Filter

Intent-Filter можно не указывать, если в нём
нет необходимости.
22
4

225. Что будем делать ч.1

22
5

226. Что будем делать ч.2

22
6

227. Что будем делать ч.2

22
7

228. Что будем делать ч.2

22
8

229.

Активити и интенты
Создание приложения «Передача данных»
(Тонких Артём Петрович)
English     Русский Rules