Как программно переключать вкладки в android из фрагмента?
я реализовал TabActivity
которая расширяет FragmentActivity
. Он имеет 5 вкладок, каждая вкладка-это Fragment
. То, что я ищу, - это программно переключаться между вкладками.
например: если я нахожусь в tab4. При нажатии кнопки я хочу перейти от tab4
to 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);
}
4 ответов
для материальной поддержки вы переключаете tablayout от фрагмента следующими способами:
1) отправьте трансляцию, полученную родительским действием, которое затем изменяет вкладку.
context.sendBroadcast(yourintent);
2.) Модификация ответа вина,
TabLayout tabhost = (TabLayout) getActivity().findViewById(R.id.tabLayout);
tabhost.getTabAt(2).select();
tablayout-это идентификатор tablayout, определенный в вашем основном xml.
наконец-то я могу переключаться между вкладками программно из фрагментов, используя следующую строку кода
TabHost host = (TabHost) getActivity().findViewById(android.R.id.tabhost);
host.setCurrentTab(2);
надеюсь, это поможет кому-то.
взгляните на этот ответ: https://stackoverflow.com/a/5460651/198996
((TabActivity) getParent()).getTabHost().setCurrentTab(2)
У меня есть вкладки (через TabLayout не TabHost(амортизируется))(с фрагментами) в моей основной деятельностью, в которой в моей первой вкладке(фрагмент) с помощью мыши слушателя в Фрагмент что для изменения текущей вкладке в мой класс MainActivity.
Я успешно изменяю текущую вкладку с помощью ниже в методе onCreateView () внутри фрагмента.
TabLayout tabs = (TabLayout)((MainActivity)getActivity()).findViewById(R.id.tabs);
tabs.getTabAt(1).select();