Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Методичні вказівки до лабораторних робіт з дисципліни: " Програмування мобільних пристроїв " для студентів напряму підготовки

Методичні вказівки до лабораторних робіт з дисципліни: " Програмування мобільних пристроїв " для студентів напряму підготовки




Сторінка4/5
Дата конвертації10.03.2017
Розмір0.65 Mb.
ТипМетодичні вказівки
1   2   3   4   5

Мета лабораторної роботи :

Навчитися створювати додатки, що складаються з декількох активностей, і діалогові вікна, а також познайомитися з елементами тач-інтерфейса


4.1 Вступ

Ця лабораторна робота присвячена різним способам розробки багатоекранних застосувань. Пропонується розробити три застосування, кожне з яких присвячене окремому аспекту цієї тематики. Після завершення роботи над додатками слухачі зможуть розробити власні програми з використанням вивчених компонентів і технологій.


4.2 Створення багатоекранного застосування зі списком

1. Створіть проект MultiScreen. У java- файлі заміните Activity на ListActivity. Клас ListActivity розроблений таким чином, що на екрані є тільки прокручуваний список і йому не потрібна додаткова розмітка. Тому файл activity _ main.xml можна видалити. Також слід видалити наступний рядок із класу MultiScreen :

setContentView (R.layout.activity _ main);
оскільки layout- файл ми тільки що видалили.

2. Тепер нам потрібний посередник, який зв'яже список і назви елементів цього списку. Для цього в Android є інтерфейс Adapter. Нам знадобиться спадкоємець цього класу ArrayAdapter :

new ArrayAdapter (Context context, int textViewResourceId, String[] objects)
В якості аргументів ArrayAdapter зажадає поточний контекст, ідентифікатор ресурсу з розміткою для кожного рядка, масив рядків.

Ми можемо вказати в якості поточного контексту ListActivity (можна використати ключове слово this), готовий системний ідентифікатор ресурсу (android.R.

Посере́дник: Особа чи установа, організація і т. ін., що сприяє встановленню та здійсненню ділових контактів, торговельних або дипломатичних зносин між ким-, чим-небудь. // Те, що виступає проміжною ланкою у взаємодії між чим-небудь або в процесі перетворення чогось.
Ключове́ сло́во - слово, або сталий вислів природної мови, яке використовують для вираження деякого аспекту змісту документа (або запиту); слово, яке має істотне смислове навантаження. Воно може служити ключем під час пошуку інформації в інтернеті чи на сторінці сайту.
layout.simple list item 1) і створений масив рядків (String[] islands ={ "Канари", "Курили", "Мальдіви", "Філіппіни"};). А виглядати це буде так:


private ArrayAdapter adapter;

adapter = new ArrayAdapter(this

android.R.layout.simple list item 1, islands);
Зверніть увагу на рядок android.R.layout.simple list item 1. У ньому вже міститься необхідна розмітка для елементів списку. Якщо вас не влаштовує системна розмітка, то можете створити власну розмітку в xml-файлі і підключити її.

Залишилося тільки підключити адаптер:

setListAdapter (adapter);
3. Тепер нам треба підключити обробку натиснення. Для цього необхідно знати, на який пункт списку здійснюється натиснення. Існує спеціальний інтерфейс OnItemClickListener з методом onItemClick (). Підключаємо обробник: getListView ().setOnItemClickListener (itemListener); Набираємо все в тому ж onCreate

OnItemClickListener itemListener = new OnItemClickListener (){

}

Якщо підкреслиться перше слово, то імпортуємо потрібний клас. Далі підведемо курсор до другого слова new OnItemClickListener. Нам буде запропоновано додати метод (Add unimplemented method). Погоджуємося і отримуємо заготівлю:



OnItemClickListener itemListener = new OnItemClickListener (){
@Override

public void onItemClick (AdapterView arg0, View arg1, int arg2 long arg3){

// TODO Auto - generated method stub

}

};



Міняємо імена змінних arg на звичніші і зрозуміліші

public void onItemClick (AdapterView parent

View v, int position, long id);
4. Залишилося описати, що відбуватиметься при натисненні на елемент.

По нашій задумці кожен елемент відкриватиме нове вікно з відповідним вмістом.

Спершу слід створити ще 4 класи: Canari, Curili, Maldivi, Philippini, і 4 xml- оболонки до них. Можна просто створити і копіювати по одному файлу в обох директоріях, міняючи тільки назву і вміст.

Наприклад, створимо файли Canari.java і canari.xml типу Activity. Зверніть увагу, що як тільки ми створили ще один java- файл, треба записати його у файл маніфесту, інакше додаток не бачитиме цей новий клас. Файл AndtoidManifest.xml знаходиться відразу під текою res. Додайте код з ім'ям класу в тегах , відразу під головною активністю.


android: label="@string/can" >




Рядок can треба створювати у файлі strings.xml, також як і інші рядки.

Перейдемо у файл canari.xml і створимо на екрані TextView. Екрани відрізнятимуться один від одного картинками. Візьміть 4 будь-яких картинки з вашого комп'ютера (можете також знайти їх в інтернеті) і перетягніть з провідника Windows в теку res\drawable. Тепер ви можете помістити елемент ImageView на екран і, вибравши потрібну картинку з ресурсів проекту, підключити її.

Інші екрани створюються аналогічно.

Провідник - матеріал, що проводить світло або електрику (на противагу діелектрику). Для провідника характерні високі тепло- або електропровідність. Найчастіше провідник є речовиною, яка має багато вільних електронів (метали).
Анало́гія - (грец. αναλογια - «відповідність») - подібність, схожість у цілому відмінних предметів, явищ за певними властивостями, ознаками або відношеннями.

5. Тепер перейдемо в головний клас і опишемо обробку події onItemClick (). Створимо перемикач, який залежить від номера елементу.


switch (position) {

case 0:


break;

case 1:


break;

case 2:


break;

case 3:
break;

}

Для запуску нового екрану необхідно створити екземпляр класу Intent і вказати клас, на який переходитимемо (у нас їх 4, тому для кожного випадку вибираємо свою). Після цього викликається метод startActivity (), який і запускає новий екран.


Intent intent = new Intent (MultiScreenMainActivity.this, Canari.class);

startActivity (intent);


6. Тепер залишилося додати спливаюче вікно Toast, яке показуватиме, який елемент ми вибрали. Цей віджет можна імпортувати так само, як і попередні. Нам знадобиться метод makeText (), у якого є три параметри: контекст додатка, текстове повідомлення і тривалість часу показу повідомлення.
Toast.makeText (getApplicationContext (), "Ви вибрали " parent.getItemAtPosition (position).toString (),Toast.LENGTH _ SHORT).show ();
Повні лістинги файлів проекту, в яких були зроблені зміни, див. нижче.
package com.mypackage.multiscreen;
import android.os.Bundle;

import android.view.View;

import android.app.ListActivity;

import android.content.Intent;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.ArrayAdapter;

import android.widget.Toast;

public class MultiScreenMainActivity extends ListActivity{

String[] islands = { "Канары", "Курилы", "Мальдивы", "Филиппины"};

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, islands);

setListAdapter(adapter);

OnItemClickListener itemListener = new OnItemClickListener() {

@Override

public void onItemClick(AdapterView parent, View v, int position, long id) {

switch (position) {

case 0:


Intent intent = new Intent(MultiScreenMainActivity.this, Canari.class);

startActivity(intent);

break;

case 1:


Intent intent1 = new Intent(MultiScreenMainActivity.this, Curili.class);

startActivity(intent1);

break;

case 2:


Intent intent2 = new Intent(MultiScreenMainActivity.this, Maldivi.class);

startActivity(intent2);

break;

case 3:


Intent intent3 = new Intent(MultiScreenMainActivity.this, Philippini.class);

startActivity(intent3);

break;

}


Toast.makeText(getApplicationContext(), "Вы выбрали " parent.getItemAtPosition(position).toString(),

Toast.LENGTH_SHORT).show();

}

};

getListView().setOnItemClickListener(itemListener);



}

}

Листинг 8.1. Файл MultiScreenMainActivity.java


package com.mypackage.multiscreen;

import android.app.Activity;

import android.os.Bundle;


public class Canari extends Activity

{

@Override



protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);



setContentView(R.layout.canari);

}

}



Листинг 8.2. Файл Canari.java




android:id="@ id/RelativeLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:padding="10dip" >

android:id="@ id/imageView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="186dp"

android:src="@drawable/canari" />


android:id="@ id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_centerHorizontal="true"

android:layout_marginTop="80dp"

android:text="@string/enjoy"

android:textAppearance="?android:attr/textAppearanceLarge" />

Листинг 8.3. Файл canari.xml








Куда бы поехать в отпуск?

Settings

Enjoy yourself!

Канары

Филиппины

Курилы

Мальдивы


Лістинг 8.4. Файл strings.xml
приложение

Рисунок 4.1 - Додаток "Куди б поїхати у відпустку"?

Відпу́стка - час відпочинку, який обчислюється в календарних днях і надається працівникам із збереженням місця роботи і заробітної плати.
, запущене на емуляторі



приложение

Рисунок 4.2 - Додаток "Куди б поїхати у відпустку"?, запущене на пристрої


4.3 Створення діалогового вікна

1. Створіть новий проект Dialog

2. Створіть кнопку на вашій активності і назвіть її "Вибрати фон" (для цього треба у файлі strings створити рядок відповідного змісту). Присвойте активності і кнопці id.

android:id="@ id/relativelayout"

android:layout_width="fill_parent"

android:layout_height="fill_parent" >


1   2   3   4   5



  • 4.2 Створення багатоекранного застосування зі списком
  • 4.3 Створення діалогового вікна
  • 4.4 Створення додатка із слайдингом з шаблону
  • Завдання для самостійного виконання
  • Лабораторна робота 5 Демонстрації розпізнавання стандартних жестів Мета лабораторної роботи
  • 5.2 Розпізнавання усіх підтримуваних жестів
  • 5.3 Розпізнавання тільки частини підтримуваних жестів
  • Лабораторна робота 6 Принципи роботи c жестами користувачами, що вводяться