Использованные источники:
1. Руководство пользователя Unity [Электронный ресурс]. Режим доступа: https://docs.unity3d.com/ (дата обращения 19.02.019)
УДК 004
Васильев В.И. студент, 2 курс
факультет «Информационные системы и технологии» Северный Арктический федеральный университет, Высшая школа информационных технологий и автоматизированных систем
Россия, г Архангельск СОЗДАНИЕ ПРИЛОЖЕНИЯ СПРАВОЧНИКА В ANDROID STUDIO
Аннотация: Статья посвящена знакомству с работой в среде разработки приложений Android Studio. А так же работе с файлами разметки. Кроме того в данной работе рассказывается про пошаговое создание приложения справочника.
Ключевые слова: Android Sudio, разработка приложений, Android, справочник. Мобильное приложение.
Vasilyev V.I.
Student, 2 year, faculty "Information Systems and Technology " Northern Arctic Federal University, Graduate School of Information
Technology and Automated Systems Russia, Arkhangelsk CREATING AN APPLICATION OF THE REFERENCE BOOK IN
ANDROID STUDIO
Annotation: The article is devoted to getting acquainted with the work in the development environment of applications Android Studio. As well as working with markup files. In addition, this paper describes the step-by-step creation of a directory application.
Keywords: Android Sudio, application development, Android, reference. Mobile app.
Для начала работы нужно запустить проект в Android studio, выбрать имя проекта, указать минимальную версию на которой будет запускаться приложение и выбрать пустой шаблон как показано на рисунке 1.
А
г391
V
3 91
Create New Project
Add an Activity to Mobile
a
Add IMo Activity
Basic Activity
Bottom Navigation Activity
Empty Activity
Previous Next Cancel
Рисунок 1 - Выбор шаблона проекта
После этого перейдём в файл разметки «аСхуйу_тат.хт1» как показано на рисунке 2.
t5 о ЧТ' Android ▼ О 4s 1 I*-
— о. v >8 арр
¿-Ï m > > manifests java
и О > generatedJava
i— 3. V res
го <w> > Cl drawable
V5' v Cl layout ¡oa activity_detail.xml
<> activity_main.xml
> Cl mipmap
> Cl raw
> Cl values
V > vi/ Gradle Scripts
Рисунок 2 - Расположение файла аСхуйу_тат.хт1 в проекте
â
А
После этого добавим компонент ListView и настроим его параметры в соответствием с рисунком 3.
|^?xml version="1.0" encoding="utf-8"?> : с <linearLayout 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:orientation="vertical" tools:context=".MainActivity">
<ListView
android:id="8+id/listView"
android:layout_width="wrap_content"
android:layout height="match parent" />
</LinearLayout>
Рисунок 3 - Файл разметки activitymain.xml
Затем создадим вторую активность DetailActivity нажав правой кнопкой мыши в поле проекта и выбрав New - Activity - Empty Activity, как показано на рисунке 4.
V El layout
activity_detail.xm activity_main,xml
> S m ¡рта р
> S raw
> СИ values > 0 G radle Scripts
New >\
Link С++ Project with Gradle
Cut III Copy Copy Path Copy Relative Path il Paste & Jump to Source Ctri+X Ctrl+C Ctrl+Shift+C Ctrl+Alt+Shift+C Ctrf+V F4
Find Usages Analyze Alt+F7 >
Ref actor Validate >-
Add to Favorites >
Reformat Code Optimize Imports Delete... *= Mark as Plain Text Ctrl+Alt+L Ctrl+Alt+O Delete I
Show in Explorer Open in Browser O Open in terminal 1 >
Local History £i5 Synchronize'activity_detail.xml' >
File Path <lil-AH-IP
Compare With... Compare File with Editor Ctrl+D
Load/Unload Modules...
GenerateXSD Schema from XML File.,.
@ Create Gist...
Convert Java Fite to Kotlin File CtrkA!t«-Shift«-K j
n Kotlin File/Class <y Layout resource file
Sample Data Directory i File
Scratch File Ctrl+Alt+ Shift*-Insert : Directory s C++ Class
C/C++ Source File C/C++Header File Image Asset 'fl' Vector Asset Kotlin Script j Singleton
g Gradle Kotlin DSL Build Script Q Gradle Kotlin DSL Settings
Edit File Templates.,, 'ft' AIDL >
U1 Android Auto W Folder ff' Fragment ff' Google ft' Other ■ '}< Service fl' Ul Component W Wear ft' Widget ft' XML
, | Resource Bundle
' Gallery...
Android TV Activity (Requires minSdk >= 21) Android Things Empty Activity (Requires minSdk >- 24) Android Things Peripheral Activity (Requires minSdk >= 24) Basic Activity
Blank Wear Activity (Requires minSdk >= 23) Bottom Navigation Activity
Fragment + ViewModel Fullscreen Activity Login Activity Master/Detail Flow Navigation Drawer Activity Scrolling Activity Settings Activity " Tabbed Activity
Рисунок 4 Создание DetailActivity
После этого создадим для этой активности файл разметки, кликнув правой кнопкой мыши в поле проекта, в папке layout и выбрав New - Layout resourse file, как показано на рисунке 5.
А
v El! layout
<> activity_detai
¡o activity_main
> mipmap
> В raw
> values > (•> Gradle Scripts
New
Link С++ Project with Gradle
& Cut Ctrl+X
fii Copy Ctrl+C
Copy Path Ctrl+Shift+C
Copy Relative Path Ctrl +Alt+Shift+C
fa Raste Ctrl+V
If Jump to Source F4
Find Usages Alt+F7
Analyze >
Refactor >
Validate
Add to Favorites >
Reformat Code Ctrl+Alt+L
Optimize Imports Ctrl+Alt+O
Delete... Delete
x= Mark as Plain Text
Show in Explorer
Open in Browser >
0 Open in terminal
Local History >
£5 Synchronize 'activity_detail.xml'
File Path Ctrl+Alt+F12
Compare With... Ctrl+D
Compare File with Editor
Load/Unload Modules-
Generate XSD Schema from XML File...
@ Create Gist...
Convert Java File to Kotlin File Ctrl +Alt+Shift+K I
t Kotlin File/Class
Layout resource file
Sample Data Directory File
Scratch File Ctrl+Alt+Shift+lnsert
Directory
C++ Class
C/C++ Source File
C/C++ Header File
Image Asset Vector Asset Kotlin Script Singleton
Gradle Kotlin DSL Build Script
Gradle Kotlin DSL Settings
Edit File Templates...
AIDL
Activity
Android Auto
Folder
Fragment
Other
Service
Ul Component Wear Widget XML
Resource Bundle
Рисунок 5 - Создание файла activity detail.xml
В созданный файл добавим компонент WebView и настроим его параметры в соответствием с рисунком 6.
р?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent">
<WebView
android:id="@+id/webView" android:layout_width="match_parent"
10 android:layout_height="match_parent" />
11 </LinearLayout>
Рисунок 6 - Файл разметки activity detail.xml
Затем реализуем программную часть приложения для этого нужно перейти в файл MainActivity и напишем код который представлен на рисунке 7.
Á
package com.example.vladislav.phisics;
import android.content.Intent; import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
10
12 o: public class MainActivity extends AppCompatActivity {
14
private String titles[] = { ie "01. Введение",
17 "02. Примеры решения задач",
18 "03. Ядерная физика",
19 "04. Термодинамика", };
22 @0verride
23 «Т protected void onCreate(Bundle savedlnstanceState) {
super.onCreate(savedlnstanceState); setContentView(R.layout.activity_main);
26 27
ListView listView = findViewById(R.id. ListView) ;
29
listView.setAdapter(
new ArrayAdapterO( context: this, android.R.layout.simple_List_item_l, titles)); listView.setTextFilterEnabled(true);
33
3S «Т listView.setOnltemClickListener((a, v, position, id) — {
Intent intent = new Intent();
intent.setClass ( packageContext: MainActivity. this, DetailActivity.class) ;
39
intent.putExtra( name: "title", position); 9 I
I
startActivity(intent) ;
>);
4€ }
47 }
Рисунок 7 - Файл MainActivity
Для того что бы удобно наполнять контентом разделы справочника в DetailActivity размещён Webview который будет читать txt файлы для их хранения в приложении необходимо создать папку, для этого в папке res создадим директорию raw кликнув правой кнопкой мыши и выбрав New -Directory. .Далее реализуем чтение нужных файлов в DetailActivity как показано на рисунке 8.
А
X package com. example, vladislav.phisics;
import android.content.Context; import android.content.Intent; import android.os.Bundle;
import android.support.v7.app.AppCompatAct ivity; import android.util.Log; import android, webkit. WebView ;
9
import java.io.BufferedReader; import java.io.IOException;
12 import java.io.InputStream;
13 import java.io.InputStreamReader;
14
is ju public class DetailActivity extends AppCompatActivity (
16
17 (¡Override
18 oT protected void onCreate(Bundle savedlnstanceState) { is super.onCreate(savedlnstanceState);
setContentView(R.layout.activity_detail) ;
21
WebView webView = findViewByld(R.id.vel)Viev) ;
23
Intent intent = getlntentO;
25
String resName = "n" + intent.getlntExtra( name: "title", defaultValue: 0); Log.i( tag: "name", resName); Context context = getBaseContext();
29
31 String text = readRawTextFile(context, getResources().getldentifier(resName,
defType: "raw", defPackage: "com.example.vladislav.phisics")) ;
webView.loadDataHithBaseURL( basellrl: null, text, mimeType: "text/html", encoding: "en_US", historyllil null) ;
35 }
37 ]
33 @ private String readRawTextFile(Context context, int resld)
39 {
InputStream inputStream = context.getResources().openRawResource(resld);
41
InputStreamReader inputReader = new InputStreamReader(inputStream); BufferedReader buffReader = new BufferedReader(inputReader); String line;
StringBuilder builder = new StringBuilderf);
46
try {
while (( line = buffReader.readLine()) != null) { builder.append(line); builder.append("\n");
si }
} catch (IOException e) { return null;
S4 )
return builder.toStringO;
S€ }
S7 )
Рисунок 8 - Файл DetailActivity Готовый проект представлен на рисунке 9
А
23:37 Р О
Phisics
Q и
01.Введение
02. Примеры решения задач
03. Ядерная физика
04. Термодинамика
Рисунок 9 -Готовый проект
Использованные источники:
1. Общие сведения о платформе Android [Электронный ресурс]. Режим доступа: https://developer.android.com/guide/?hl=ru (дата обращения 18.02.2019)
2. Сайт Александра Климова [Электронный ресурс]. Режим доступа: http://developer.alexanderklimov.ru/android/manual.php (дата обращения 18.02.2019)
А