Сеилханова Р. Б



бет99/112
Дата07.01.2022
өлшемі11,65 Mb.
#17516
түріПрограмма дисциплины
1   ...   95   96   97   98   99   100   101   102   ...   112
Байланысты:
Силлабус Android krmu 20

8.1 Введение


Данная лабораторная работа посвящена различным способам разработки многоэкранных приложений. Предлагается разработать три приложения, каждое из которых посвящено отдельному аспекту этой тематики. По завершению работы над приложениями слушатели смогут разработать собственные программы с использованием изученных компонентов и технологий.

8.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(MultiScreen.MainActivity.this, Canari.class);

startActivity(intent);





Достарыңызбен бөлісу:
1   ...   95   96   97   98   99   100   101   102   ...   112




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет