- Android Hello World Example Project File Structure
- 1. Create android hello world example steps.
- 2. Android project file explanation.
- 3. How to get the TextView component in java code.
- 4. Create An Android APK File.
- Leave a Comment Cancel Reply
- Android java main xml
- Добавление файла layout
- Получение и управлене визуальными элементами в коде
Android Hello World Example Project File Structure
This article will show you how to use android studio to create an android Hello World example. It also explains the main example files and their role and relation.
1. Create android hello world example steps.
You can read the article Android Development Environment Setup first if you do not know.
- Open android studio by clicking Widows Start —> Android Studio —> Android Studio.
- Click Start a new Android Studio project link in the Welcome to Android Studio windows dialog.
- In the Create New Project window, input android project settings such as Application name ( for example HelloWorldExampleProject ), Company domain ( for example www.dev2qa.com ), and browse to select the Project location ( project saved directory), then click the Next button.
- In the Add an Activity to Mobile window, choose the default activity for this project. Select ” Empty Activity ” in this example then click the Next button.
- In the Customize the Activity window dialog, input the Activity Name(MainActivity) and the Layout Name(activity_main), you can use the default setting values here, click the Next button.
- Click the Finish button to complete the setup wizard.
2. Android project file explanation.
- Now the new android project has been created completely, you can see there has a lot of files in the android studio left panel tree.
- The most important three files are AndroidManifest.xml, MainActivity.java, and activity_main.xml, we will explain them one by one.
- The below picture shows the relationship between the above three files.
- Below is the above 3 files in the android hello world project.
D:\WORK\DEV2QA.COM-EXAMPLE-CODE\ANDROIDEXAMPLEPROJECT\HELLOWORLDEXAMPLEPROJECT │ ├─app--- │ │ │ ├─main │ │ │ AndroidManifest.xml │ │ │ │ │ ├─java │ │ │ └─com │ │ │ └─dev2qa │ │ │ │ │ │ │ └─www │ │ │ └─helloworldexampleproject │ │ │ MainActivity.java │ │ │ │ │ └─res │ │ ├─layout │ │ │ activity_main.xml
public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); >>
3. How to get the TextView component in java code.
- From the above activity_main.xml, we add an id attribute to the TextView component. If you want to get that component in java code, you can use the below code.
TextView textView = (TextView) this.findViewById(R.id.helloWorldTxt);
@Override protected void onCreate(Bundle savedInstanceState)
4. Create An Android APK File.
- Click ” Build —> Build APK ” in the Android Studio toolbar.
- After building you can see a popup dialog at the Android Studio right bottom corner. The dialog title is Build APK. Click the Show in Explorer link in the popup dialog to show the APK file in windows explorer.
- Generally, the APK file is saved in your android output folder like this HelloWorldExampleProject\app\build\outputs\apk , you can get it there and copy it to your Android Simulator or physical device to run it.
Leave a Comment Cancel Reply
This site uses Akismet to reduce spam. Learn how your comment data is processed.
Android java main xml
Как правило, для определения визуального интерфейса в проектах под Android используются специальные файлы xml. Эти файлы являются ресурсами разметки и хранят определение визуального интерфейса в виде кода XML. Подобный подход напоминает создание веб-сайтов, когда интерфейс определяется в файлах html, а логика приложения — в коде javascript.
Объявление пользовательского интерфейса в файлах XML позволяет отделить интерфейс приложения от кода. Что означает, что мы можем изменять определение интерфейса без изменения кода java. Например, в приложении могут быть определены разметки в файлах XML для различных ориентаций монитора, различных размеров устройств, различных языков и т.д. Кроме того, объявление разметки в XML позволяет легче визуализировать структуру интерфейса и облегчает отладку.
Файлы разметки графического интерфейса располагаются в проекте в каталоге res/layout . По умолчанию при создании проекта с пустой activity уже есть один файл ресурсов разметки activity_main.xml , который может выглядеть примерно так:
В файле определяются все графические элементы и их атрибуты, которые составляют интерфейс. При создании разметки в XML следует соблюдать некоторые правила: каждый файл разметки должен содержать один корневой элемент, который должен представлять объект View или ViewGroup .
В данном случае корневым элементом является элемент ConstraintLayout , который содержит элемент TextView .
Как правило, корневой элемент содержит определение используемых пространств имен XML. Например, в коде по умолчанию в ConstraintLayout мы можем увидеть такие атрибуты:
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
Каждое пространство имен задается следующим образом: xmlns:префикс=»название_ресурса» . Например, в
xmlns:android="http://schemas.android.com/apk/res/android"
Название ресурса (или URI — Uniform Resource Indicator) — «http://schemas.android.com/apk/res/android» . И этот ресурс сопоставляется с префиксом android ( xmlns:android ). То есть через префикс мы сможем ссылаться на функциональность этого пространства имен.
Каждое пространство имен определяет некоторую функциональность, которая используется в приложении, например, предоставляют теги и атрибуты, которые необходимые для построения приложения.
- xmlns:android=»http://schemas.android.com/apk/res/android» : содержит основные атрибуты, которые предоставляются платформой Android, применяются в элементах управления и определяют их визуальные свойства (например, размер, позиционирование). Например, в коде ConstraintLayout используется следующий атрибут из пространства имен «http://schemas.android.com/apk/res/android»:
android:layout_width="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
Это наиболее распространенные пространства имен. И обычно каждый корневой элемент (не обязательно только ConstraintLayout) их содержит. Однако, если вы не планируете пользоваться графическим дизайнером в Android Studio и хотите работать целиком в коде xml, то соответственно смысла в пространстве имен «http://schemas.android.com/tools» нет, и его можно убрать.
При компиляции каждый XML-файл разметки компилируется в ресурс View. Загрузка ресурса разметки осуществляется в методе Activity.onCreate. Чтобы установить разметку для текущего объекта activity, надо в метод setContentView() в качестве параметра передать ссылку на ресурс разметки.
setContentView(R.layout.activity_main);
Для получения ссылки на ресурс в коде java необходимо использовать выражение R.layout.[название_ресурса] . Название ресурса layout будет совпадать с именем файла, поэтому чтобы использовать файл activity_main.xml в качестве источника визуального интерфейса, можно определить следующий код в классе MainActivity :
package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); // загрузка интерфейса из файла activity_main.xml setContentView(R.layout.activity_main); >>
Добавление файла layout
Но у нас может быть и несколько различных ресурсов layout. Как правило, каждый отдельный класс Activity использует свой файл layout. Либо для одного класса Activity может использоваться сразу несколько различных файлов layout.
К примеру, добавим в проект новый файл разметки интерфейса. Для этого нажмем на папку res/layout правой кнопкой мыши и в появившемся меню выберем пункт New -> Layout Resource File :
После этого в специальном окошке будет предложено указать имя и корневой элемент для файла layout:
В качестве названия укажем second_layout . Все остальные настройки оставим по умолчанию:
- в поле Root element указывается корневой элемент. По умолчанию это androidx.constraintlayout.widget.ConstraintLayout .
- поле Source set указывает, куда помещать новый файл. По умолчанию это main — область проекта, с которой мы собственно работаем при разаботке приложения.
- поле Directory main указывает папку в рамках каталога, выбранного в предыдущей опции, в который собственно помещается новый файл. По умолчанию для файлов с разметкой интерфейса это layout .
После этого в папку res/layout будет добавлен новый файл second_layout.xml , с которым мы можем работать точно также, как и с activity_main.xml. В частности, откроем файл second_layout.xml и изменим его содержимое следующим образом:
Здесь определено текстовое поле TextView, которое имеет следующие атрибуты:
- android:id — идентификатор элемента, через который мы сможем ссылаться на него в коде. В записи android:id=»@+id/header» символ @ указывает XML-парсеру использовать оставшуюся часть строки атрибута как идентификатор. А знак + означает, что если для элемента не определен id со значением header, то его следует определить.
- android:text — текст элемента — на экран будет выводиться строка «Welcome to Android».
- android:textSize — высота шрифта (здесь 26 единиц)
- android:layout_width — ширина элемента. Значение «match_parent» указывает, что элемент будет растягиваться по всей ширине контейнера ConstraintLayout
- android:layout_height — высота элемента. Значение «match_parent» указывает, что элемент будет растягиваться по всей высоте контейнера ConstraintLayout
Применим этот файл в качестве определения графического интерфейса в классе MainActivity:
package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.second_layout); >>
Файл интерфейса называется second_layout.xml, поэтому по умолчанию для него будет создаваться ресурс R.layout.second_layout . Соответственно, чтобы его использовать, мы передаем его в метода setContentView. В итоге мы увидим на экране следующее:
Получение и управлене визуальными элементами в коде
Выше определенный элемент TextView имеет один очень важный атрибут — id или идентификатор элемента. Этот идентификатор позволяет обращаться к элементу, который определен в файле xml, из кода Java. Например, перейдем к классу MainActivity и изменим его код:
package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); // устанавливаем в качестве интерфейса файл second_layout.xml setContentView(R.layout.second_layout); // получаем элемент textView TextView textView = findViewById(R.id.header); // переустанавливаем у него текст textView.setText("Hello from Java!"); >>
С помощью метода setContentView() устанавливается разметка из файла second_layout.xml .
Другой важный момент, который стоит отметить — получение визуального элемента TextView. Так как в его коде мы определили атрибут android:id , то через этот id мы можем его получить.
Для получения элементов по id класс Activity имеет метод findViewById() . В этот метод передается идентификатор ресурса в виде R.id.[идентификатор_элемента] . Этот метод возвращает объект View — объект базового класса для всех элементов, поэтому результат метода еще необходимо привести к типу TextView.
Далее мы можем что-то сделать с этим элементом, в данном случае изменяем его текст.
Причем что важно, получение элемента происходит после того, как в методе setContentView была установлена разметка, в которой этот визуальный элемент был определен.
И если мы запустим проект, то увидим, что TextView выводит новый текст: