Как запрограммировать простую задачу переключения вкладок - PullRequest
0 голосов
/ 22 марта 2012

Вот краткий обзор моей программы:

Android 2.2

  • MainActivity (tabhost)

4 вкладки

  • Поиск (использует SearchActivity) (по умолчанию)
  • Исполнители (использует ArtistsActivity)
  • Альбомы (использует AlbumsActivity)
  • Песни (использует SongsActivity)

Приложение загружается на вкладку поиска по умолчанию и SearchActivity.Я могу ввести строку поиска и нажать кнопку поиска (это хранит данные в классе глобальных переменных).Теперь, когда я вручную нажимаю на вкладку «Художники», он загружает ArtistsActivity и соответствующее представление, а также извлекает данные из этого класса глобальных переменных и выполняет все действия.

Я могу вручную нажимать на все вкладки и просто переключаться между вкладками.

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

Я пробовал несколько различных методов.Я нашел в Интернете, и ни один из них не работал.

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

Пример того, что должно происходить автоматически: App Loads-> SearchTab-> Пользователь вводит строку поиска и нажимает кнопку Search-> ArtistsTab

Это не имеет никакого смысла.Почему я не могу запрограммировать возможность автоматического переключения на следующую вкладку, если я могу вручную перейти к следующей вкладке как пользователь, нажав на нее?Это уже отлично работает, мне просто нужно повторить действие нажатия на эти вкладки в коде, чтобы пользователю не приходилось вручную нажимать следующую вкладку.

У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 22 марта 2012

объявите ваш tabhost / tabwidget как статический и вызовите setcurrent tab, получая доступ к этому статическому tabwidget из вашей деятельности экс

TabActivity.tabhost.setcurrentTab(1);
...