Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа Android.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆
    1. Создание и запуск приложения

      1. Создание проекта 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 – манифест или конфиг-файл приложения

      1. Запуск 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.

    1. Создание пользовательского интерфейса

Если проводить аналогию с 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.