Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пери перевод.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
103 Кб
Скачать
☆

Знакомство с Представлениями

Как говорилось выше, все визуальные компоненты в Android — по-

томки класса View и, как правило, называются Представлениями. Вы также

будете часто встречать термины ≪элемент управления≫ или ≪виджет≫ (не

путайте с виджетами для домашнего экрана, которые описываются в гла-

ве 10) — с ними вы должны быть знакомы, если имеете какой-либо опыт

разработки GUI.

ViewGroup — это производный от View класс, спроектированный для

хранения нескольких Представлений одновременно. Как правило, Группы

представлений используются либо для создания независимых компонентов

многократного использования, либо для управления компоновкой дочер-

них элементов (в таком случае объект ViewGroup, как правило, называется

разметкой).

Поскольку все визуальные элементы происходят от класса View, вы,

вероятно, столкнетесь с такими его названиями, как ≪виджет≫, ≪элемент

управления≫ и ≪представление≫.

Создавая приложение To-Do List в главе 2, вы уже успели познакомиться

с разметкой и тремя стандартными Представлениями: LinearLayout, ListView

и TextView.

133 бет

В следующих разделах вы научитесь собирать воедино постоянно услож-

няющиеся пользовательские интерфейсы. Узнаете, как с помощью наследо-

вания Представлений, доступных в SDK, создавать новые структурирован-

ные элементы управления, после чего создадите собственное Представление

с нуля.

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

для Активностей с помощью Представлений

Новая Активность изначально — пустой экран, где вы должны разместить

свой пользовательский интерфейс. Для этого необходимо вызвать метод

setContentView, передав ему экземпляр Представления или ресурс с раз-

меткой, который вы хотите отобразить. Так как пустой дисплей выглядит

не очень вдохновляюще, при переопределении обработчика onCreate почти

всегда используется метод setContentView, чтобы назначать пользователь-

ский интерфейс для Активности.

Этот метод принимает либо идентификатор ресурса с разметкой (как

было описано в главе 3), либо единственный экземпляр Представления. Бла-

годаря этому вы можете описывать пользовательский интерфейс как внутри

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

предпочтительно.

Используя ресурсы с разметкой, вы отделяете уровень представления от

бизнес-логики. Благодаря такому гибкому подходу можно изменять внеш-

ний вид, не затрагивая код программы. Это позволяет указывать различные

экземпляры разметки, оптимизированные под разные аппаратные конфигу-

рации, вы даже можете менять их во время выполнения программы, осно-

вываясь на аппаратных изменениях (например, при повороте экрана).

В листинге 4.1 показано, как с помощью внешнего ресурса с разметкой

задать пользовательский интерфейс для Активности. Вы можете получить

ссылки на Представления, размещенные внутри разметки, используя метод

findViewById. В этом примере предполагается, что файл main.xml хранит-

ся в каталоге проекта res/layout.

Листинг 4.1. Получение ссылок на элементы разметки внутри Активности

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TextView myTextView = (TextView)findViewById(R.id.myTextView);

}

Если вы предпочитаете более традиционный подход, то есть возмож-

ность создавать пользовательский интерфейс прямо в коде программы.

134 бет

В листинге 4.2 показано, как назначить новый объект TextView в качестве

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

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

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView myTextView = new TextView(this);

setContentView(myTextView);

myTextView.setText("Hello, Android");

}

Метод setContentView в качестве параметра принимает единственный

экземпляр Представления, поэтому чтобы добавить в Активность сразу не-

сколько элементов, необходимо использовать разметку.

Виджеты, доступные в Android

Android — это набор стандартных элементов управления, с помощью ко-

торых можно создавать простые интерфейсы. Используя эти Представления

(а также изменяя и расширяя их при необходимости), вы можете упростить

процесс разработки и обеспечить преемственность между разными при-

ложениями.

Отметим некоторые из наиболее используемых элементов.

• TextView. Стандартная метка, предназначенная для вывода текста.

Она поддерживает многострочное отображение, форматирование

и автоматический перенос слов и символов.

• EditText. Редактируемое поле для ввода текста. Поддерживает много-

строчный ввод, перенос слов на новую строку и текст подсказки.

• ListView. Группа представлений, которая формирует вертикальный спи-

сок элементов, отображая их в виде строк внутри списка. Простейший

объект ListView использует TextView для вывода на экран значений

toString, принадлежащих элементам массива.

• Spinner. Составной элемент, отображающий TextView в сочетании

с соответствующим Представлением ListView, которое позволяет

выбрать элемент списка для отображения в текстовой строке. Сама

строка состоит из объекта TextView, показывающего текущий выбор,

и кнопки, при нажатии которой всплывает диалог выбора.

• Button. Стандартная кнопка, которую можно нажимать.

• CheckBox. Кнопка, поддерживающая два состояния. Представлена

в виде отмеченного или неотмеченного флажка.

• RadioButton. Переключатель, поддерживающий два состояния и груп-

пировку. Группы таких переключателей пользователь видит как набор

135 бет

двоичных вариантов, из которых в определенный момент времени

может быть выбран только один.

• ViewFlipper. Группа представлений, позволяющая определить набор

элементов и горизонтальную строку, в которой одновременно может

выводиться только одно Представление. При этом переходы между

отображаемыми элементами осуществляются с помощью анимации.

• QuickContactBadge. Выводит на экран эмблему со значком, присвоен-

ным указанному контакту, используя такие данные, как номер телефона,

имя, адрес электронной почты или сайта. Нажатие значка приведет

к отображению панели, которая предоставляет различные варианты

для связи с выбранным контактом, включая звонок, SMS, электронную

почту и системы обмена мгновенными сообщениями (IM).

Это только некоторые из доступных виджетов. Android также поддерживает

несколько более продвинутых реализаций Представлений, включая элементы

для выбора даты и времени, поля ввода с автодополнением, карты, галереи

и вкладки. Чтобы получить более полный список доступных виджетов,

можете пройти по адресу http://developer.android.com/guide/tutorials/views/index.html.

Рано или поздно вы, как инновационный разработчик, столкнетесь с си-

туацией, когда ни один из существующих стандартных элементов управ-

ления не подойдет для решения задачи. Ниже в этой главе вы узнаете, как

расширять и комбинировать существующие элементы, а также научитесь

проектировать и создавать полностью новые виджеты с нуля.