- •Ресурсы и документация
- •Подготовка окружения
- •Установка jdk 6 Java Development Kit
- •Установка Android sdk.
- •Установка Eclipse
- •Настройка Eclipse для работы с Android проектами.
- •Создание пользовательского интерфейса
- •Создание и запуск приложения
- •Создание проекта Android
- •Запуск Android приложения в эмуляторе
- •Краткий обзор View
- •Создание activity и переходы между экранами
- •Краткая справка о интерфейсах и классах в java
- •Rest веб-сервисы, json
- •Описание веб-сервисов http://tsu.Codereign.Net/api/tsu
- •Работа с rest веб-сервисами в Android
- •Отображение диалогов
- •Хранение настроек пользователя
- •Оборудование
- •Задание на работу
- •Порядок выполнения работы
- •Оформление отчета
- •Контрольные вопросы
Создание и запуск приложения
Создание проекта Android
Нажимаем Ctr+N или File > New > Other
В появившемся диалоге выбираем Android Project и нажимаем Next
Вводим название нашего приложения, имя проекта и имя пакета java, версии SDK, остальные опции оставляем по умолчанию и жмем Next
Далее следуем стандартным инструкциям по установке, никаких специальных действий не требуется.
Проект приложения создан, Eclipse должен выглядеть примерно вот так:
Давайте посмотрим на структуру файлов проекта:
src – все, написанные нами исходные коды, будут в этой папке
gen – генерируемые средой файлы, необходимые для приложения. Здесь лучше ничего не трогать . (Если этой папки нет - что-нибудь измените в проекте и нажмите кнопку сохранить).
Android 2.1 – необходимые для приложения Android-библиотеки
assets и res – папки для файлов-ресурсов различного типа
res/layout – верстка пользовательского интерфейса
AndroidManifest.xml – манифест или конфиг-файл приложения
Запуск Android приложения в эмуляторе
Мы только что создали пустое Android приложение, теперь попробуем запустить его в эмуляторе.
В главном мена нажимаем Run > Run
В появившемся диалоге выбираем Android Application
Если у Вас не настроен эмулятор, то появится следующий диалог:
No compartible targets were found. Do you wish to add new Android Virtual Device?
Жмем YES
В новом диалоге выбираем Launch a new Android Device и нажимаем кнопку Manage
Появится Android Virtual Device Manager, нажимаем там кнопку New.
В новом диалоге заполняем поля как в картинке ниже и жмем Create AVD
В Android Virtual Device Manager выбираем вновь созданные эмулятор и нажимаем там кнопку Start.
Затем возвращаемся в предыдущий диалог, там выбираем запущенный эмулятор и жмем OK
Eclipse установит приложение на эмулятор и мы увидим
Мы настроили эмулятор и Eclipse для запуска приложений. Все последующие запуски будут проходить просто по команде Run > Run.
Создание пользовательского интерфейса
Если проводить аналогию с Windows, то приложение состоит из окон, называемых Activity. В конкретный момент времени обычно отображается одно Activity и занимает весь экран, а приложение переключается между ними. В качестве примера можно рассмотреть почтовое приложение. В нем одно Activity – список писем, другое – просмотр письма, третье – настройки ящика. При работе вы перемещаетесь по ним.
Содержимое Activity формируется из различных компонентов, называемых View. Самые распространенные View - это кнопка, поле ввода, чекбокс и т.д.
Примерно это можно изобразить так:
В приложении которое мы создали в предыдущем пункте сейчас только один Activity – MainActivity. Верстка для него хранится в layout файле – activity_main.xml
Layout файл представляет из себя XML, описывающий расположение элементов на экране.
Чтобы посмотреть его необходимо выбрать файл в Package Explorer, затем нажать на вкладку activity_main.xml
Для создание интерфейсам мы можем редактировать xml файл напрямую или использовать редактор (вкладка Graphical Layout),встроенный в Eclipse. Обычно используются оба способа вместе.
Давайте посмотрим теперь на редактор. Я настроил Eclipse для удобного редактирования layout, предлагаю вам сделать тоже самое
Чтобы лучше познакомиться с View, создадим кнопку по нажатию на которую изменим текст “Hello world!”. Для этого перетащим кнопку из палитры элементов на экран визуализации layout, затем найдем в редаторе свойств свойство Text и изменим его содержимое на «Обновить», а свойство Id поменяем на «+id/btnUpdate». Теперь давайте откроем XML, там должно быть примерно следующие:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".MainActivity" />
<Button
android:id="@+id/btnUpdate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="20dp"
android:layout_marginTop="26dp"
android:text="Обновить" />
</RelativeLayout>
Давайте попробуем разобраться со свойствами элементов. Они представляют из себя XML атрибуты и имеют префикс android, потому что лежат в xml namespace android. Основное свойство это id, добавление @+id/ перед названием переменной автоматически генерирует идентификатор ресурса для того чтобы элемент был доступен из .java файла. Свойства с префиксом layout определяют положение элементов на экране к ним мы вернемся позже. Свойство text – текст отображаемый на кнопке.
Теперь щелкнем два раза на файле MainActivity.java и сделаем некоторые изменения в коде.
Сначала сделаем ссылку на кнопку Update.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)this.findViewById(R.id.btnUpdate);
}
Полезные советы: Сочетание Ctrl-Space – автоматическое заполнение и быстрая подсказка в любом месте, Ctrl-Shift-O на неизвестном типе – автоматический импорт Java неймспейсов.
Таким образом мы получили ссылку на кнопку update. Обратите внимание на идентификатор btnUpdate он такой же как и в верстке. Теперь добавим обработчик события нажатия кнопки, вот так должен выглядеть файл после всех изменений, обратите внимание на import-ы
package com.tsu.tripcomputer;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button)this.findViewById(R.id.btnUpdate);
btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView txt = (TextView)MainActivity.this.findViewById(R.id.textView1);
txt.setText("Hello tsu!");
}});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Сделаю несколько пояснений по коду. Метод setOnClickListener добавляет обработчик события нажатия. Он принимает в параметре интерфейс OnClickListener, в качестве него мы создаем анонимный класс, в котором реализуем все необходимые методы (в данном случае onClick). Для доступа к инстансу основному класса из анонимного используется конструкция вида MainActivity.this. Метод setText это сеттер для свойства text у textView.
