Подтвердить что ты не робот

Сколько видов деятельности я должен использовать?

Я запускаю приложение Android для поиска ресторанов, и некоторые рекомендации будут приветствоваться! На первом экране я хотел бы иметь поле поиска с кнопкой отправки (я получаю данные из веб-службы) и ниже списка с результатами поиска. При нажатии на один из элементов списка будет отображаться экран с подробностями ресторана, а также карта с указанием его местоположения. Мои вопросы:

  • Могу ли я сделать все за один сеанс или я должен выполнить операцию для поиска, одну для списка результатов, одну для описания ресторана и другую для карты?
  • Сделал бы одно действие, чтобы приложение стало более отзывчивым?
  • Как я могу использовать список и карту в рамках обычной активности (без ListActivity и MapActivity)?
4b9b3361

Ответ 1

Могу ли я сделать все за один сеанс или я должен выполнить операцию для поиска, одну для списка результатов, одну для описания ресторана и другую для карты?

Ответ на это действительно зависит от потока вашего приложения. Я думаю, что самое главное, о чем нужно помнить, - это то, как пользователь будет управлять вашим приложением с помощью кнопки "назад" . Когда вы создаете новое действие, которое помещает его в стек, и пользователь всегда может нажать "назад" , чтобы вытащить его из стека.

Одна из крайностей заключается в том, чтобы поместить все эти шаги в разные действия. Тогда пользователь имеет полный контроль с помощью кнопки "назад" , но они могут раздражаться, прыгая вокруг "Деятельности". Включение всего этого в одну деятельность - это другая крайность, и я очень советую против этого; пользователи ожидают, что новые экраны будут отличаться от Activity, из-за которых они могут "вернуться", и поэтому, если вы поместите все свои яйца в одно действие, вам нужно будет начать "возвращаться" самостоятельно.

Я думаю, что есть хорошая промежуточная площадка, которую может принести ваше приложение, хотя, конечно, ваш дизайн пользовательского интерфейса может отличаться от того, что я предлагаю. Я бы сказал, что вы можете сделать это в двух действиях; в первом случае у вас есть поле поиска вверху (с кнопкой отправки рядом с ним), а ниже этого поля поиска - ListView, который заполняется результатами. Во втором случае вы используете TabActivity, где одна вкладка для описания, а другая - для карты. Я думаю, что это выгодно по двум причинам: при первом действии пользователь видит результаты поиска на той же странице, что и поиск, и может быстро изменить параметры поиска, если это необходимо. А на втором мероприятии задний ключ инкапсулирует поддержку из одного ресторана.

Будет ли одно действие сделать приложение более отзывчивым?

Не совсем. Мероприятия требуют времени для создания/срыва, но не так много времени. Лучше сегментировать ваше приложение логичным способом (для пользователя).

Как я могу использовать список и карту в рамках обычной активности (без ListActivity и MapActivity)?

Вы можете уйти с ListView внутри обычной Activity без ListActivity; просто включите ListView в свой контент Activity, затем в коде захватите ListView и установите его адаптер вручную. Все ListActivity делает добавление некоторых удобных функций обертки для одного первичного ListView, но это необязательно.

Карты - это другое дело. Вам нужно будет использовать MapActivity для отображения карт, потому что MapActivity имеет специальный код настройки и разрыва, который необходимо запустить. К сожалению.

Ответ 2

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

Я не думаю, что это будет хорошо работать только с одним Activity.

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

Ответ 3

Я хотел бы добавить несколько рекомендаций для Даниэля.

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

Итак, для каждого вашего действия спросите себя, всегда ли поведение кнопки "назад" логично для конечного пользователя. Если вы найдете сценарий, в котором это не так, вам следует взглянуть на рефакторинг ваших действий - что может включать объединение двух или более видов деятельности в одну, перенос некоторых обязанностей из одной деятельности в другую (но сохранение их обоих) или даже разделение деятельности в два.

Создание пользовательского интерфейса, который ведет себя логически, когда пользователь перемещается вокруг него, важен, и чем больше ваше приложение (и чем больше навигация там), тем более важным оно становится. Непредсказуемое поведение навигации не позволяет людям узнать, как извлечь максимальную выгоду из вашего приложения в то время, когда они, скорее всего, удалят его, - в первые несколько часов после его загрузки.

Ответ 4

Если вы хотите написать модульный, многоразовый и переносимый код, одним из действий является способ перехода. Активность - это концепция только для Android. Основной поток и бизнес-логика любого хорошо спроектированного приложения должны быть независимыми от платформы. Вовлечение действий в ваш код более высокого уровня связывает ваш проект с Android, который идет вразрез с независимостью от платформы, основным принципом как в Java, так и в программном обеспечении качества в целом.