Найти в Дзене
Что такое AlertDialog
Если вы предпочитаете что-то в более классическом стиле диалогового окна, то вам нужен AlertDialog. Как и любое другое модальное диалоговое окно, AlertDialog всплывает, захватывает фокус и остается там, пока пользователь не закроет его. Вы можете использовать его для критической ошибки, сообщения о проверке, которое не может быть эффективно отображено в базовом пользовательском интерфейсе активности, или для чего-то другого, когда вы уверены, что пользователь должен увидеть это сообщение и должен увидеть его сейчас...
3 года назад
Как создается Toast
Приветствую вас на своем канале. Приятного прочтения. Поскольку тост является преходящим, у вас нет возможности узнать, заметил ли его пользователь. Вы не получаете от него подтверждения, и сообщение не остается надолго, чтобы досаждать пользователю. Таким образом, тост предназначен в основном для предупреждающих сообщений, например, о завершении длительной фоновой задачи, о том, что заряд батареи снизился до низкого уровня, но не слишком низкого, и т.д. Создать тост довольно просто. Класс Toast...
3 года назад
Поднятие тостов в программировании
Тост - это переходное сообщение, то есть оно появляется и исчезает само по себе без участия пользователя. Более того, он не отвлекает внимание от активной в данный момент деятельности, поэтому если пользователь занят написанием следующего Большого американского руководства по программированию, он не будет "съедать" нажатия клавиш сообщением. Поскольку тост является преходящим, у вас нет возможности узнать, заметил ли его пользователь. Вы не получаете от него подтверждения, и сообщение не остается надолго, чтобы досаждать пользователю...
3 года назад
Настройка анимации в виджете ViewFlipper
После получения виджета ViewFlipper из макета мы сначала настроим анимацию "входа" и "выхода". В терминах Android анимация - это описание того, как виджет покидает ("выходит") или входит ("входит") в область просмотра. Анимации - это сложный зверь, который в конечном итоге заслуживает отдельной главы, но не рассматривается в этом тексте. Пока же поймите, что анимации - это ресурсы, хранящиеся в res/anim/ в вашем проекте. В данном примере мы используем пару анимаций, предоставленных образцами SDK, доступными по лицензии Apache 2...
3 года назад
Другие интересные контейнеры
Android предлагает AbsoluteLayout, в котором содержимое размещается на основе определенных координат. Вы указываете AbsoluteLayout, где разместить дочерний элемент в точных координатах X,Y, и Android помещает его туда без лишних вопросов. Плюс в том, что это дает вам точное позиционирование. Минусом является то, что ваши представления будут выглядеть "правильно" только на экранах определенного размера, или вам придется написать кучу кода для настройки координат в зависимости от размера экрана. Поскольку...
3 года назад
Намерения и представления о программировании
В предыдущих примерах содержимое каждой вкладки было задано как представление, например, кнопка. Это легко и просто, но это не единственный вариант. Вы также можете интегрировать другое действие из вашего приложения с помощью намерения. Намерения - это способ указать что-то, что вы хотите выполнить, а затем сказать Android найти что-то для этого. Чаще всего они используются для того, чтобы вызвать появление действий. Например, всякий раз, когда вы запускаете приложение из основной программы запуска...
3 года назад
Что такое RateableWrapper
Идея заключается в том, что RateableWrapper - это место, где находится большая часть логики нашего списка рейтингов. Он размещает полосы рейтинга на строках и отслеживает состояния полос рейтинга по мере их изменения пользователем. Для состояний у него есть float[], размер которого соответствует количеству строк, которые, по словам делегата, находятся в списке. Реализация функции getView() в RateableWrapper напоминает таковую в RateListDemo, за исключением того, что вместо использования LayoutInflater...
3 года назад
Адаптеры getView
Все становится немного сложнее, когда вы понимаете, что во всем, что происходило до этого момента в этой главе, мы никогда не изменяли сам ListView. Вся наша работа была связана с адаптерами, переопределением getView() и раздуванием наших собственных строк и тому подобным. Поэтому, если мы хотим, чтобы RateListView принимал любой обычный ListAdapter и "просто работал", размещая флажки в строках по мере необходимости, нам придется проделать некоторую причудливую работу. В частности, нам нужно будет...
3 года назад
Отчиличия в коде
Вот что отличается между нашим предыдущим кодом и этой реализацией активности и getView(): - Мы по-прежнему используем String[] items в качестве списка нелепых слов, но вместо того, чтобы передавать массив String прямо в ArrayAdapter, мы превращаем его в список объектов RowModel. RowModel - это жалкое подобие изменяемой модели; в нем хранятся нелепые слова плюс текущее состояние проверки. В реальной системе это могут быть объекты, заполняемые из курсора, а свойства будут иметь большее значение для бизнеса...
3 года назад
Немного об инфляции
В данном случае "инфляция" означает преобразование XML-спецификации макета в реальное дерево объектов View, которое представляет XML. Это, несомненно, утомительная часть кода: взять элемент, создать экземпляр указанного класса View, пройтись по атрибутам, преобразовать их в вызовы установщиков свойств, перебрать все дочерние элементы, промыть, прополоскать, повторить. Хорошая новость заключается в том, что прекрасные люди из команды Android обернули все это в класс под названием LayoutInflater, который мы можем использовать самостоятельно...
3 года назад
Динамическое представление
Эта техника - предоставление альтернативного макета для использования в строках - очень хорошо справляется с простыми случаями. Однако его недостаточно, если у вас есть более сложные сценарии для строк, например, такие как следующие: - Не все строки используют одинаковый макет (например, некоторые имеют одну строку текста, другие - две). - Вам необходимо настроить виджеты в рядах (например, разные значки для разных случаев). В этих случаях лучшим вариантом будет создание собственного подкласса нужного вам Adapter, переопределение getView() и построение строк самостоятельно...
3 года назад
Скромный ListView
Скромный ListView - один из самых важных виджетов во всем Android, просто потому, что он используется так часто. Будь то выбор контакта для звонка, сообщения электронной почты для пересылки или электронной книги для чтения, виджеты ListView используются в широком спектре действий. Конечно, было бы неплохо, если бы они были не просто обычным текстом. Хорошей новостью является то, что они могут быть настолько причудливыми, насколько вы захотите, конечно, в пределах ограничений экрана мобильного устройства...
3 года назад