Как программно переключить вкладки в android из фрагмента?

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

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

Пробовал следующее, но это не помогает.

Из SecondTab

public void switchTabInActivity(String value){
    FirstTab parent;
    parent = (FirstTab) getActivity().getParent();
    parent.switchTab(value);
}

TabActivity

  /** To Change Tab*/
public void switchTab(String tabno){ 
    this.onTabChanged(tabno);
}

Ответ 1

Наконец, я могу программно переключаться между вкладками из Фрагментов, используя следующую строку кода

  TabHost host = (TabHost) getActivity().findViewById(android.R.id.tabhost);
  host.setCurrentTab(2);

Надеюсь, это поможет кому-то.

Ответ 2

для поддержки материалов вы переключаете tablayout из фрагмента следующими способами:

1) отправить широковещательную рассылку, полученную родительской активностью, которая затем изменяет вкладку.

context.sendBroadcast(yourintent);

2.) Модификация ответа vino,

TabLayout tabhost = (TabLayout) getActivity().findViewById(R.id.tabLayout);
tabhost.getTabAt(2).select();

tablayout - это идентификатор tablayout, как определено в вашем основном xml.

Ответ 3

Взгляните на этот ответ: fooobar.com/info/487722/...

((TabActivity) getParent()).getTabHost().setCurrentTab(2)