У меня есть приложение для Android, которое имеет четыре вкладки (я использую основную TabActivity с TabHost и TabSpecs). В одном из моих вспомогательных действий (активность открыта на вкладке) мне нужно открыть вкладку, не нажав на заголовок вкладки, и я не знаю, как это сделать. Например, у меня есть кнопка в моей деятельности, и когда я нажимаю на нее, она открывает другую вкладку. На данный момент, это то, что я делаю:
Intent intent = new Intent(myActivity.this, myTabActivity.class);
intent.putExtra("ComeFrom", true);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
Тогда в TabActivity, если я получаю истинное чтение «ComeFrom» экстры я открыть вкладку желает, но проблема в том, что он убивает все остальные activies. Итак, если кто-то знает лучший (более чистый) способ сделать этот трюк, пожалуйста, скажите мне ...Android: Как динамически менять открытую вкладку
ответ
Для этого вам нужно использовать «setCurrentTab (...)» TabHost. В одном из моих проектов я создал статический метод в основном Activity (тот, который имеет TabHost), названный «swtichToTab (int tab)». В моих субактивитах (те, что находятся внутри вкладок) можно было просто вызвать «MainActivity.switchToTab()» для запуска переключения.
Возможно, это не самый чистый метод, я уверен, что вы можете достичь этого, используя трансляции.
Вы можете создать BroadcastReceiver и отправить радиопередачу с индексом вкладки в качестве дополнительного
Вы можете использовать представление вместо деятельности за содержание вкладок. Таким образом, код проще и не использует столько памяти. Кроме того, вы можете использовать метод setCurrentTab(tabIndex)
, чтобы легко переключаться между видами.
У меня есть простой учебник here. Он имеет вкладку со списком и видом карты. Когда вы нажимаете на элемент в списке, активность динамически переходит к виду карты (с использованием метода setCurrentTab(tabIndex)
). Вы можете легко изменить это, чтобы иметь представление переключателя кнопок.
Обнаружили проще (я думаю) ответ:
на TabActivity объявить общественности, статическую и самостоятельной переменной и заселить его на методе OnCreate. F.e .:
public class TheActivity extends TabActivity { public static TheActivity self; ... @Override public void onCreate(Bundle savedInstanceState) { self=this;
на любой активности выполняется на вкладке, когда вы хотите изменить один показанный на вашем приложении. Вы можете сделать это:
TabHost tabHost = TheActivity.self.getTabHost(); tabHost.setCurrentTab(0);
работал нормально для меня, надеюсь, что кто-то еще служит!
Это может быть хороший способ решить эту проблему, спасибо Zalakain! – homega52
- 1. Ссылка на открытую вкладку
- 2. Закройте вкладку браузера, открытую приложением Android
- 3. Chrome, признать открытую вкладку
- 4. Закрыть последнюю открытую вкладку
- 5. Как динамически менять фрагмент?
- 6. Android: динамически менять значок ActionBar?
- 7. android, динамически менять фрагмент внутри вкладки
- 8. Android: как динамически менять цвет значка кнопки?
- 9. Android - Как динамически менять текст в настройках?
- 10. Android: Как динамически менять скорость анимации?
- 11. Android - Как динамически менять расположение фрагментов
- 12. Как динамически менять объект?
- 13. выберите вкладку, открытую нажатием кнопки
- 14. Как отслеживать вкладку, открытую с главной страницы?
- 15. Как найти текущую открытую вкладку в проекте?
- 16. Как динамически менять положение кнопок
- 17. Как динамически менять выравнивание элементов?
- 18. MongoDB - как динамически менять ключ
- 19. Как динамически менять главную страницу
- 20. Как динамически менять цвет элемента?
- 21. Extjs4 Как динамически менять модель?
- 22. Как динамически менять активный класс
- 23. JQuery: как динамически менять divs
- 24. Как динамически менять содержимое Spinners
- 25. Как динамически менять стиль css?
- 26. Как динамически менять размер указателя?
- 27. Three.js Как динамически менять SplineCurve3
- 28. Как динамически менять переход Vue.js
- 29. Как динамически менять фон JFrame?
- 30. Динамически менять фон LinearLayout
Thanks; это работает нормально для моих текущих потребностей;) – homega52