Все, что я читал об Intents, говорит об их использовании для передачи данных или для запуска одного действия из другого действия. Я хочу получить данные из уже запущенного действия.
В учебнике по макету вкладок по адресу http://developer.android.com/resources/tutorials/views/hello-tabwidget.html показано, что я хочу сделать. (Мое приложение вместо этого выполняет некоторые инженерные вычисления, но учебный код дает хорошую аналогию с моим приложением.) В учебном пособии создается приложение с тремя вкладками, и на каждой вкладке размещается отдельное действие.
Чтобы развернуть пример из учебника, предположим, что я выбрал художника на вкладке «Исполнители» / занятии. Я хочу, чтобы можно было выбрать вкладку «Альбомы» / действие и отобразить на ней все альбомы этого исполнителя.
Мне кажется, что для этого мне нужно использовать Намерение. Все учебники, которые я нашел, предполагают, что я создам кнопку «Просмотр альбомов» на вкладке / задании «Исполнители», и что нажатие на кнопку приведет к выполнению намерения, которое запускает действие «Альбомы» и передает artistName.
Я не хочу создавать эту кнопку. Недвижимость на макете Artists очень важна, и у меня есть отличная вкладка «Альбомы», а действие HelloTabWidget уже содержит намерение создать вкладку «Альбомы».
Кроме того, пользователь захочет переходить назад и вперед между Альбомом и Исполнителем, чтобы изменить выбор исполнителя, и вкладки - отличный способ сделать это. Нет необходимости усложнять интерфейс другой кнопкой.
Так, как я могу иметь действие PULL PUN ArtistName из действия Artists, когда выбрана вкладка Albums (или отображается макет Albums), вместо того, чтобы действие Artists START Albums и PUSH the artistName?
Эквиваленты, которые я могу придумать из других миров программирования:
Глобальные переменные. Обескуражен в Android DevT, верно? И если они существуют, как они называются?
Получатель, как artistName = Artists.getArtistName();
. У меня такое ощущение, что это не так просто.
Запись в файл и чтение из него, то есть запоминающее устройство или энергонезависимая память. Мне не нужно, чтобы значение artistName было постоянным. Он будет сбрасываться в ноль каждый раз, когда пользователь запускает приложение.
Так как же это делается в мире Android? Использую ли я Intent - и если да, то как?