Я все еще ищу лучшее решение, как использовать макет с меню и панелью инструментов и надувать или запускать действия в Android. Мой вопрос может показаться странным, но я пытаюсь объяснить это на примере.
Допустим, я программирую приложение для Android (удивительно .. я действительно это делаю)
Мое приложение может выполнять следующие действия:
- Пользователь может войти в систему [3] или зарегистрироваться [2]. Если он входит в систему, начинается новое действие и отображается его панель управления. Если он регистрируется: начинается процесс для процесса регистрации.
- Процесс регистрации: пользователь вводит желаемое имя пользователя и пароль и нажимает кнопку для подтверждения. Его данные будут проверены, и, если они действительны, начинается новое действие, где он может выбрать свои настройки. Backbutton работает, и данные могут быть переданы в новую деятельность. После последней регистрации данные окна будут сохранены и панель управления запущена. Начинать новые занятия - это весело!
- Теперь вот где все становится сложнее. Dasboard имеет «панель действий» (вверху) и «панель инструментов» (внизу, как вкладки). Таким образом, все должно быть просмотрено в средней части окна просмотра (теперь называется основным видом). Нет больше переключений активности :(, tho.
В настоящее время каждый щелчок мыши удаляет все виды из основного вида и добавляет новый вид. Выглядит великолепно, может быть анимированным и работает как шарм. За исключением: в настоящее время он не динамический.
Так что ... я не знаю, как решить это наилучшим образом. Например: я извлекаю данные из веб-сервиса, создаю из него представление списка, и оно расширяет список. Эту деятельность я не могу запустить, но эти данные нужно поместить в главное окно. Как я могу сделать это наилучшим образом?
И это эффективно?
Я тренируюсь, и это моя первая небольшая дискуссия, которую я хочу начать. Так что ... БОРЬБА! ;)
UPDATE:
Я видел интересный способ начать деятельность и получить результаты.
Начало деятельности через намерения
, Можно ли вставить новые / обновленные представления после начала активности? Я бы тогда генерировал свои результаты в отдельном упражнении. Обновите представление. Вернитесь к «панели управления» и загрузите только что обновленное представление. Возможный? Или неэффективно? И как я могу обновить вид из другой деятельности? Мне нужно многому научиться: /
UPDATE2:
Хороший пример приложения, которое сделало это: Google+
Жаль, что у меня нет их исходного кода;)
Update3:
Что лучше?
- загрузить новое действие, отключить анимацию и установить выбранную вкладку панели инструментов +
отключить функциональность кнопки
- startActionForResults, извлекать результаты и обновлять текущее представление (все еще не знаю, как это возможно)
- изменение onflip viewFlipper + обновление данных в перевернутом виде.
Я до сих пор не знаю эффективного решения. Или я что-то упустил? Я только что закончил свою ListActivity для извлечения данных из моего веб-сервиса. Но это все еще работает в отдельном мероприятии. Как я могу внедрить его в мой «основной вид» сейчас? Конечно ... я мог бы установить список моего собственного адаптера. Но в настоящее время я обновляю и извлекаю данные с сервера, когда создаю список.
Боюсь, это может быть единственным ответом, который я получу: Внедрить внешние намерения в основное задание
UPDATE4: Я что-то пробую.
Основываясь на ответе nininho (спасибо!), Я пробую следующий подход:
- Запустите Dashboardactivity и создайте ViewFlipper.
- Каждый клик панели инструментов представляет определенную страницу ViewFlipper.
- На каждой странице реализован Listadapter, который показывает разные результаты (разные запросы веб-сервиса). (ListView, GridView, с изображением профиля, без изображения профиля)
- На Панели инструментов щелкните, запустите AsyncTask или Сервис и уведомите Список на текущей странице об изменении данных. (Конечно, если данные изменились). Перейти на страницу, на которой была нажата кнопка.
- Реализация updatefeature. При прокрутке вниз списка = получить больше данных и добавить его. Обновите другие списки автоматически через 5 минут. или обновить список по нажатию кнопки обновления.
PRO на данный момент : кнопка автономна для всей активности. Page-flip-анимация возможна. Асинхронное обновление списков и возможность переключения на другой список.
CON: ... у кого-нибудь есть? Как насчет эффективности такого подхода? Несет ли ViewFlipper всю информацию, чтобы производительность снижалась, или же Viewflipper перерабатывает свои представления (например, ListView)?
UPDATE5:
Если у меня будет время, я сделаю все здесь более читабельным и обсуждаемым. Не сердись на меня за то, что я читаю мой мусор;)